为什么 groupmems 命令即使以 root 身份执行也要求输入密码

为什么 groupmems 命令即使以 root 身份执行也要求输入密码

groupmems允许我们编辑组成员资格的命令有一个特殊的特征:当以 root 身份执行时,它在尝试编辑时再次要求输入 root密码任何团体成员资格任何系统用户。

事实上,它甚至在检查此类组是否存在之前先行获取 root 密码(在要求密码之前检查用户是否存在)

例如,如果您groupmems -g 12345 -a nobody以 root 身份执行,它会要求您输入 root 密码,然后让您知道组 12345 不存在。

为什么(实际上也是如何)对于这个特定的命令以这种方式完成,考虑到root当它涉及到passwd /etc/sudoers以及......其他一切时的无所不能。

另外,这部分直接取自man groupmems

groupmems 命令允许用户管理自己的组成员身份列表,而无需超级用户权限。 groupmems 实用程序适用于将其用户配置为自己的主要组(即来宾/来宾)的系统。

只有作为管理员的超级用户才能使用 groupmems 来更改其他组的成员身份。

root让我想知道如果我从小组中删除会发生什么root。那么 root 是否会失去将自己添加回组的root权限groupmems? (我不想尝试这个,还不知道这个groupmems命令的行为方式

当我尝试阅读它和小组使用时,man我最终得到了这个有趣的花絮:

/etc/group 文件是定义系统上的组的文本文件。每行一个条目,格式如下:

组名:密码:GID:用户列表

我个人从来没有在linux中设置过密码group。它会做什么/完成/帮助?何时会询问具有特定权限的用户密码而不是密码?那么属于该特定组的每个用户的密码是否也可以用作该组的密码?

最后一件事man group我们至少可以笑一笑:

正如 4.2BSD initgroups(3) 手册页所述:似乎没有人使 /etc/group 保持最新状态。

答案1

“如何”是通过调用pam_authenticate.我不知道为什么,但可以通过创建一个/etc/pam.d/groupmems包含以下内容的文件来消除这种行为:

auth       sufficient pam_rootok.so

在没有 PAM 支持的情况下重新编译groupmems是消除提示的另一种方法。

相关内容