我想在我的一些 Debian/Ubuntu 主机上创建一个新用户,该用户能够使用命令apt-get update
和更新服务器apt-get dist-upgrade
,但我不想授予他们完全 sudo 访问权限来执行其他任何操作。这可能吗?也许有一种方法可以创建一个他们无法编辑但可以执行的脚本,该脚本将以 root 用户身份执行?
答案1
Sudo
该/etc/sudoers
文件不仅仅用于授予用户完全的 root 访问权限。
您可以使用现有 sudo 用户编辑 sudoers 文件,使用以下命令sudo visudo
您可以将要授予访问权限的命令分组,如下所示:
Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get
然后,您可以为这些命令授予特定的用户权限,如下所示:
[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS
这可以在下图中看到:
现在,如果您尝试sudo apt-get update
,否则sudo apt-get dist-upgrade
这些命令将执行无需询问密码。如果您想要提示输入密码,请删除NOPASSWD
授予用户访问命令组的权限的位。
如果您尝试以sudo
用户身份运行其他任何内容,系统将提示您输入密码并失败。