允许某些客人执行某些命令

允许某些客人执行某些命令

我想在我的一些 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用户身份运行其他任何内容,系统将提示您输入密码并失败。

参考

相关内容