问题
下面的情况怎么可能呢?
$ getent group | grep docker
$ getent group docker
docker:x:600:
请注意,第一个调用不会返回任何内容,而第二个调用则会返回任何内容。
grpck
不报告任何问题。
一些背景
这是在我从其他人那里继承的 CentOS 7.6 虚拟机上,所以我不确定它的配置可能与 CentOS 默认值有什么不同。据我所知,VM 以某种方式连接到 LDAP(但我对此不太熟悉……)。
其实我想知道这个docker
群体是在哪里定义的。至少它既不是 in/etc/group
也不是 in /etc/gshadow
。
按照评论中的要求:
$ grep ^group /etc/nsswitch.conf
group: files sss hesiod
答案1
@jeff-schaller 的评论让我走上了正轨:该docker
组是在 Hesiod 数据库中定义的:
$ hesinfo docker group
docker:x:600:
正如 @jeff-schaller 和 @stephen-kitt 进一步指出的那样,Hesiod 似乎不允许列出所有组(因此getent group
不返回它们),但允许逐一查询它们(因此getent group docker
返回团体)。