如何读取`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) 

它显示test的UID和GID(分别为其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是什么?

答案在你的问题中

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

你问的问题:

test:x:1000:

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

另见

至于“为什么?”,我担心这可能是UNIX标准。 也就是说,它是在近50年前以这种方式创造的,这就是它的完成方式。