我想验证用户帐户filesender_1是否是组valid_senders的成员。
当我查看/etc/group时,filesender_1不存在:
valid_senders:x:12345:production_1我将其解读为"production_1是组valid_senders的唯一成员,其组id为12345“。
然而:
当我查看/etc/passwd时,valid_senders的组id列出了filesender_1 .
filesender_1:x:1515:12345:filesender_1:/local/home/filesender_1:/bin/sh..。所以我知道valid_senders是filesender_1的主要组。
这是一个令人惊讶的差异,还是/etc/group只列出组次的成员是正常的?
发布于 2014-06-17 17:12:24
是的,这种差异是正常的。我已经看过很多次了,我不再看/etc/passwd和/etc/group文件,而是开始查看组成员的方式:getent group <groupname>和groups <username>。
发布于 2018-01-19 15:13:45
有一个名为members的程序,您可以在大多数linux发行版上安装,它列出了一个组的实际成员,不管它是他们的主组还是辅助组。
通常,当创建一个用户而没有指定一个具有-g或- gid的组时,默认行为是将他们的主组设置为他们的用户名,并且这个gid不会放在/etc/group文件中。因此,由用户joe创建的文件和目录将具有所有权-- joe:joe。但是您不会在/etc/group文件中找到组'joe‘。
如果将用户joe添加到“学生”组中,则运行
getent group students将在小组学生的用户列表中显示joe。
运行程序
members <groupname>在一个组中,将显示属于组名的主成员或辅助成员的用户。
发布于 2019-05-15 20:40:42
一般来说,系统管理员应该将用户添加到/etc/group中的主组成员列表中,因为getpwent()系列的系统调用将在调用时删除重复项。程序不应该直接读取/etc/group或/etc/passwd,它们应该使用系统调用。至少20年来,所有这些都是正确的,而且可能更久。
https://serverfault.com/questions/605812
复制相似问题