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

 

 

posted @ 2025-12-08 08:07  hopeccie  阅读(26)  评论(0)    收藏  举报