![sudoers 如何工作?](https://linux22.com/image/1039485/sudoers%20%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
在安装过程中,我们像往常一样创建主用户帐户,然后就可以毫无问题地使用它执行 sudo 命令。现在,当我创建另一个帐户并想要执行 sudo 时,系统提示我该帐户不在 sudoers 文件中。在该文件中,我发现 %admin 和 %sudo 组中的用户可以获得 root 权限。但我的主帐户不属于这两个组,我可以毫无问题地使用它执行 sudo,但使用另一个帐户则不行。除了 sudoers 之外,还有什么我应该知道的吗?谢谢
答案1
admin 和 sudoer 组应授予用户所需的访问权限。您必须注销用户并重新登录才能使更改生效。请查看以下答案,获取一些非常好的说明:
答案2
为了回答这个一般性问题,一些程序使用 polkit 来筛选 root 权限的机制,而不是使用该/etc/sudoers
方法。(例如,我记得 gparted)。该sudo
命令使用/etc/sudo
,/etc/sudoers.d/*
因此请务必检查每个文件。顺便说一句,LDAP 可以用于获取信息。
我的系统是 12.04,我的 sudo 帐户在sudo
组中。我的相关 polkit 文件是/etc/polkit-1/localauthority.conf.d/50-localauthority.conf
和/etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf
。您的可能有所不同。
我假设您意识到,如果 sudoers 文件说%sudo
这意味着用户必须在sudo
组中。我假设,但不知道,在策略(或组)更改后,长期凭证可能会继续存在。不过,如果这样做了,我想你会知道的。
为了进一步探究,我建议您发布目录和树/etc/sudoers
中及树下的文件内容,并告诉我们这两个用户 ID 被添加到了哪些组。我不相信我提到的文件中有任何密码或哈希值。/etc/sudoers.d/
/etc/polkit-1/