限制具有更广泛权限的组中用户的 sudo 权限

限制具有更广泛权限的组中用户的 sudo 权限

长话短说,该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组,并将除此之外的所有用户添加到jsmithsudo组中。

请记住,在 UNIX/Linux 系统上,组既不是分层的,也不是继承的。您必须在每个组中包含所有选定的用户。

相关内容