sudo权限控制
一、sudo通过/etc/sudoers文件进行权限管理,推荐使用visudo命令编辑该文件以避免语法错误。配置格式如下:
用户/组 主机=(可切换的用户:可切换的组) [NOPASSWD:]命令列表
# 允许用户alice执行所有命令(需密码) alice ALL=(ALL:ALL) ALL # 允许用户bob无需密码执行特定命令 bob ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/dpkg # 授权用户管理特定服务 User_Alias BACKUP_ADMINS = backup1, backup2 Cmnd_Alias BACKUP_CMDS = /usr/bin/rsync, /usr/bin/tar BACKUP_ADMINS ALL=(root) NOPASSWD: BACKUP_CMDS # 允许普通用户重启网络 %network-users ALL=(root) NOPASSWD: /usr/bin/systemctl restart networking
二、以root身份运行以下命令,将用户增加到sudo组,这样用户就能使用sudo命令
$ sudo usermod -aG sudo username
三、关键配置文件(ubantu配置)
# # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # This fixes CVE-2005-4890 and possibly breaks some versions of kdesu # (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532) Defaults use_pty # This preserves proxy settings from user environments of root # equivalent users (group sudo) #Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy" # This allows running arbitrary commands, but so does ALL, and it means # different sudoers have their choice of editor respected. #Defaults:%sudo env_keep += "EDITOR" # Completely harmless preservation of a user preference. #Defaults:%sudo env_keep += "GREP_COLOR" # While you shouldn't normally run git as root, you need to with etckeeper #Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*" # Per-user preferences; root won't have sensible values for them. #Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME" # "sudo scp" or "sudo rsync" should be able to use your SSH agent. #Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK" # Ditto for GPG agent #Defaults:%sudo env_keep += "GPG_AGENT_INFO" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "@include" directives: @includedir /etc/sudoers.d
浙公网安备 33010602011771号