如何允许用户仅使用sudo运行apt-get update命令?
我无法弄清楚如何允许用户(在这种情况下test
)只能使用sudoers
文件运行apt-get update
命令。 当我尝试添加用户然后测试它时,它仍然不允许用户运行命令。
有人可以帮帮我吗? 我整天都在研究这个问题,但仍然无法弄明白。 我可能输错了。
我正在使用Ubuntu 14.04。
看看Andre Herman Bezerra的回答,这个问题唯一的问题是在评论中指出这并不限制用户只能更新(他们可以安装/删除软件包)。
如果您想限制用户只能更新,那么最好不要执行以下操作。
创建组或使用%staff
组。
在此示例中,我选择使用staff用户组。
更新sudoers
文档。
export editor="vi" && sudo visudo
创建一个Cmnd_Alias
,它将定义允许的bash脚本。
Cmnd_Alias UPDATER_ONLY = /usr/local/bin/updater.sh
您需要定义如何允许此命令。
# Require staff to enter password when updating. %staff ALL= UPDATER_ONLY # Or, password is not required, just run the updater. %staff ALL= NOPASSWD: UPDATER_ONLY
最后,您需要创建shell。
为了防止任何人编辑文件,这应该由root 和只读拥有,或者在运行sudo时创建。
$ sudo echo '#!/bin/bash' >> /usr/local/bin/updater.sh $ sudo echo 'sudo apt-get update && sudo apt-get upgrade -y' >> /usr/local/bin/updater.sh $ sudo chmod 0755 /usr/local/bin/updater.sh
这应该如下所示:
$ ls -la /usr/local/bin/updater.sh -rwxr-xr-x 1 root root 60 Jan 22 08:50 /usr/local/bin/updater.sh*
我们差不多完成了!
您需要记住通过将用户添加到员工组来允许此权限。
sudo usermod -aG staff the-user
如果有人试图安装某些东西,这就是他们收到的东西:
test-me@comp0:~$ sudo apt-get install test [sudo] password for test-me: Sorry, user test-me is not allowed to execute '/usr/bin/apt-get install test' as root on comp0.
首先,仅使用visudo
编辑/etc/sudoers
您可以为apt-get
命令设置用户joe
的权限,只添加以下行:
%joe your_hostname=(root):/usr/bin/apt-get
以joe
身份登录后,您可以检查权限:
sudo -l
编辑:用户将能够使用apt-get更新,升级,安装等; 因为这些只是apt-get命令的标志。