用户在passwd和shadow文件中不存在,但是当使用getent passwd user命令时会显示用户信息。

用户在/etc/passwd和/etc/shadow文件中不存在,但当我使用"getent passwd userSec"命令时,它显示了账户详细信息。
[root@myServer systemadmin]# getent passwd userSec
userSec:sdfdgfdsge34gfdsgfdsgfdsgwerwrewd.:709:709:userSec_Account:/home/userSec:/bin/bash
[root@myServer systemadmin]# cat /etc/passwd | grep userSec
[root@myServer systemadmin]# cat /etc/shadow | grep userSec

尝试删除和添加用户,但仍然没有成功。
[root@myServer systemadmin]# sudo /usr/sbin/userdel -r userSec
userdel: error deleting password entry
userdel: error deleting shadow password entry
userdel: error removing directory /home/userSec
[root@myServer systemadmin]# /usr/sbin/useradd -d /home/userSec -m -s /bin/bash userSec
useradd: user userSec exists

2你有没有偶然使用 LDAP 服务器进行身份验证?如果没有其他方法,你可以直接查看文件。尝试查看 /etc/passwd/etc/group/etc/shadow,看看是否真的存在其中。不要使用 grep 命令,确实要在文件内部查找,也许会遗留一些相关信息。 - Ziazis
2你可以使用 egrep '^shadow|^passwd' /etc/nsswitch.conf 命令来查看你使用了哪些查找。 - Thomas
1重新启动并重试。 - tso
我真的不知道。但我不认为有问题,因为这是唯一一个有问题的账户。谢谢。 - carlregencia
1修复: 手动在 /etc/passwd 中添加 userSec 执行 pwconv 命令以与 /etc/shadow 同步 执行 passwd userSec 命令,成功! - carlregencia
1个回答

我觉得可能是因为同步需要时间,对我来说有效的方法是尝试从客户端删除用户,然后再次使用getent命令进行查询。如果一切都与DNS连接正常,请不要忘记在Poweradmin中添加LDAP到DNS,并且还可以尝试执行ifdown enp0s3 && ifup enp0s3命令。