Sudoers 权限 - 多个组中的用户

Sudoers 权限 - 多个组中的用户

我想了解与分配给特定用户的有效权限有关的规则。我在 Ubuntu 的 sudoers 手册页以及这里的许多帖子中看到了这一段:

sudoers文件是一次性读取的,因此当多个条目与用户匹配时,它们会按顺序应用。如果存在冲突值,则使用最后一个匹配项(不一定是最具体的匹配项)。

不过,让我向您展示我所做的两个实验(在 Ubuntu 22.04.1 LTS 上):

我已经创建了用户test_sudo、组test1test2添加test_sudo到这两个组中。我sudoers每次实验前的文件都是默认的。

第一个实验:我已将以下行插入到我的 sudoers 文件中:

%test1 ALL=(ALL) NOPASSWD: ALL
%test2 ALL=(ALL) /usr/bin/git

添加后,我可以sudo在不输入密码的情况下执行任何我想要的命令(包括git)。

第二个实验:我已将以下行插入到我的sudoers文件中:

%test2 ALL=(ALL) NOPASSWD: ALL
%test2 ALL=(ALL) /usr/bin/git

添加后,我无需密码即可执行sudo任何命令,除了 git,这需要密码。

这让我想问,预先确定用户的有效权限的有序逻辑规则集是什么(必须有一个,因为有效权限的计算显然是由代码完成的)?

显然,前面提到的 Ubuntu 文档不足以描述该机制。

相关内容