在 /etc/passwd 中找不到我的用户名,在 /etc/group 中找不到我的初始组的名称

dot*_*lib 3 users account-restrictions nsswitch

这是我得到的:

[zehu@danville ~]$ groups
apl vboxusers
[zehu@danville ~]$ 

[zehu@danville ~]$ grep zehu /etc/passwd 
[zehu@danville ~]$ 

[zehu@danville ~]$ grep apl /etc/group
[zehu@danville ~]$ 

[zehu@danville ~]$ grep vboxusers /etc/group
vboxusers:x:1540:zehu
[zehu@danville ~]$ 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这是否正常?为什么是这样?感谢帮助!

 [zehu@danville ~]$ sudo grep zehu /etc/shadow  
 [zehu@danville ~]$   
 [zehu@danville ~]$ id  
 uid=1580(zehu) gid=1100(apl)     groups=1100(apl),1540(vboxusers)  
 [zehu@danville ~]$ getent group apl  
 apl:x:1100: 

[zehu@danville ~]$ ypcat passwd | grep zehu
zehu:beL3WqT.4rb5Y:1580:1100:Zeyu Hu:/home/zehu:/bin/tcsh
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 5

您正在使用的系统对某些用户和组(包括您自己和您的组)使用目录服务(例如 NIS、NIS+ 和 LDAP)apl,而不是/etc/passwd和中的本地条目/etc/group

这在用户和组在中央计算机上进行管理的系统中很常见。从系统管理的角度来看,它可以更轻松地允许用户登录任意数量的其他计算机(登录节点或计算集群节点),而无需在某些用户或组信息发生更改时手动更新所有计算机上所需的文件。

getent实用程序可用于获取有关本地用户和组以及有关从目录服务提供服务的用户和组的信息。

要查看您的passwd条目,请使用

getent passwd "$LOGNAME"
Run Code Online (Sandbox Code Playgroud)

或者

getent passwd "$( id -u )"
Run Code Online (Sandbox Code Playgroud)

要查看您的group条目,请使用

getent group $( id -G )
Run Code Online (Sandbox Code Playgroud)

更改-G-g仅获取您的主要组。

有关更多信息,请参阅