Linux
“getent group”和“getent group <groupname>”之間的不一致——為什麼?
問題
以下怎麼可能?
$ 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
@jeff-schaller 的評論讓我走上了正軌:該
docker
組是在 Hesiod 數據庫中定義的:$ hesinfo docker group docker:x:600:
正如@jeff-schaller 和@stephen-kitt 進一步指出的那樣,Hesiod 似乎不允許列出所有組(因此
getent group
不返回它們)但允許一個接一個地查詢它們(因此getent group docker
返回團體)。