长话短说,该admins
组用于 SSH 身份验证和确定 sudoers 权限。该组的所有成员admins
都应具有无限制的 sudo 访问权限,但jsmith
.jsmith
需要像 的其他成员一样进行身份验证admins
,但应该只具有 sudo 权限才能运行systemctl restart smithscoolapp
。
我尝试将 sudoers 编辑为如下所示:
jsmith ALL=systemctl restart smithscoolapp
admins ALL=(ALL) ALL
但是,jsmith
仍然能够 sudo 进入除systemctl restart smithscoolapp
.是否可以为组中的特定成员设置 sudoer 权限,或者我应该专门为该用户创建一个“subadmins”组?
答案1
您需要!ALL
为用户指定。
例如我有这个配置:
%wheel ALL=(ALL) ALL
sweh ALL=(ALL) !ALL,/bin/ls
我的用户在该wheel
组中。因此,如果我询问可以运行哪些命令:
$ sudo -l
User sweh may run the following commands on test1:
(ALL) ALL
(ALL) !ALL, /bin/ls
所以现在我可以只运行ls
命令,但不能运行cat
.
$ sudo ls /root
anaconda-ks.cfg ks-post.log original-ks.cfg
$ sudo cat /etc/shadow
Sorry, user sweh is not allowed to execute '/bin/cat /etc/shadow' as root on test1.
答案2
我不相信您可以按照您描述的方式删除权限。
ssh
相反,您应该将和 的权限分成sudo
两个单独的组。将所有用户分配到新ssh
组,并将除此之外的所有用户添加到jsmith
该sudo
组中。
请记住,在 UNIX/Linux 系统上,组既不是分层的,也不是继承的。您必须在每个组中包含所有选定的用户。