‘id’和‘/etc/group’应该如何读取?

‘id’和‘/etc/group’应该如何读取?

这是为什么用户不是其私人群组 (UPG) 的成员?尽管第一个问题对于理解这一点来说并不是必需的。


命令id看起来非常清楚...

test@test ~ $ id test
uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),129(sambashare)

它显示了 UID 和 GID test(分别是它的 UPG),然后另外列出了用户test所属的所有组。


但那应该怎么/etc/group读呢?

test@test ~ $ less /etc/group | grep test
adm:x:4:syslog,test
cdrom:x:24:test
sudo:x:27:test
dip:x:30:test
plugdev:x:46:test
lpadmin:x:113:test
test:x:1000:
sambashare:x:129:test

开头的组名非常清楚,数字是 GID;之后列出了组成员的名称。但为什么倒数第二行没有test:x:1000:test表明 test:x:1000:用户test是该组的成员test

附加问题:x第二列中的是做什么的?

答案1

答案就在你的问题里

[id] 显示测试的 UID 和 GID(分别是其 UPG),然后另外列出用户测试所属的所有组。

您所询问的行:

test:x:1000:

test用户 是test组 的成员。这在 中定义/etc/passwd。 中的组/etc/passwd定义了用户的“主要”组test。其他或补充组定义在/etc/group:在这种情况下,用户test也是、、等的adm成员。cdromsudo

另请参阅

至于“为什么?”,恐怕这可能是 UNIX 标准。也就是说,近 50 年前它就是这样创建的,而且一直都是这样。

相关内容