![创建新用户时添加不存在的组](https://linux22.com/image/754929/%E5%88%9B%E5%BB%BA%E6%96%B0%E7%94%A8%E6%88%B7%E6%97%B6%E6%B7%BB%E5%8A%A0%E4%B8%8D%E5%AD%98%E5%9C%A8%E7%9A%84%E7%BB%84.png)
我对以下结果感到有些困惑。我以 root 身份登录并创建了 2 个新用户。tecmint 和 tecmint2。新用户成为我在 /etc/group 中找不到的组的一部分。我如何找出发生这种情况的原因并修复它。使用以下命令添加用户。
root@uklvadsb0047[DEV][~] # useradd -G ldap tecmint2
GID 是 55,但是当我使用命令列出用户时ldap
显示dba
id
root@uklvadsb0047[DEV][~] # cat /etc/group | grep 100
users:x:100:
tecmint:x:1000:
tecmint2:x:1001:
root@uklvadsb0047[DEV][~] # cat /etc/group | grep 55
ldap:x:55:tecmint,tecmint2
root@uklvadsb0047[DEV][~] # id -a tecmint2
uid=1001(tecmint2) gid=1001(jbase5) groups=1001(jbase5),55(dba)
root@uklvadsb0047[DEV][~] # id -a tecmint
uid=1000(tecmint) gid=1000(tibco) groups=1000(tibco),55(dba)
任何关于这方面的线索都会很有帮助:)
谢谢,Dwija。
在 /etc 下的文件中搜索组名时添加了多行内容
root@uklvadsb0047[DEV][~] # grep -rnw '/etc' -e 'tecmint' /etc/group:63:ldap:x:55:tecmint,tecmint2 /etc/group:64:tecmint:x:1000: /etc/gshadow:63:ldap:!::tecmint,tecmint2 /etc/gshadow:64:tecmint:!:: /etc/passwd:38:tecmint:x:1000:1000::/home/tecmint:/bin/bash /etc/group-:63:ldap:x:55:tecmint /etc/group-:64:tecmint:x:1000: /etc/gshadow-:63:ldap:!::tecmint /etc/gshadow-:64:tecmint:!:: /etc/shadow:38:tecmint:$6$DsZ1ssCj$GjgFqqrliSo5u6jxwfY /etc/subgid:1:tecmint:100000:65536 /etc/passwd-:38:tecmint:x:1000:1000::/home/tecmint:/bin/bash /etc/subuid:1:tecmint:100000:65536 /etc/shadow-:38:tecmint:$6$DsZ1ssCj$GjgFqqrliSo5u6jxwfYiG /etc/subgid-:1:tecmint:100000:65536 /etc/subuid-:1:tecmint:100000:65536 root@uklvadsb0047[DEV][~] # grep -rnw '/etc' -e 'jbase5'
root@uklvadsb0047[DEV][~] # grep -rnw '/etc' -e 'dba' Binary file /etc/selinux/targeted/active/modules/100/mandb/hll matches Binary file /etc/udev/hwdb.bin matches
root@uklvadsb0047[DEV][~] # grep -rnw '/etc' -e 'tibco'
/etc/
搜索上述组名下没有任何文件的结果。
答案1
原因是在联网系统上,组不仅可以从 /etc/group 文件读取,还可以通过 LDAP 或黄页获取(在这些情况下,已知组的列表来自本地组文件以及通过 LDAP 或 YP 收到的组)。如果您只想要组名,您可以使用:
getent 组 | cut -d: -f1
上述内容解释了为什么我无法在本地服务器中看到组名但已分配了 ID。
https://stackoverflow.com/questions/14059916/is-there-a-command-to-list-all-unix-group-names
getent group
- 我使用此命令列出可用的组,它显示了我正在寻找的组。此测试服务器是 LDAP 网络的一部分,组名是从 LDAP 中获取的。所以谜团解开了。
root@uklvadsb0047[DEV][~] # getent group | grep -e tibco -e jbase5 -e dba
asmdba:x:59:
dba:x:55:
jbase5:x:1001:
tibco:x:1000:
谢谢@Michael的回复。接下来是搜索如何防止使用来自LDAP的组名并使用本地组名。