尝试将(不存在的)用户添加到我的 CentOS 系统时返回useradd: user example exists
。我可以成功地将用户手动添加到 /etc/passwd 和 /etc/shadow,但这种解决方法是一件坏事。用户存在于 LDAP 中,但 PAM 未使用 LDAP 进行身份验证。添加其他用户工作正常。我被难住了。
预计到达时间:
[root ~]# userdel example
userdel: error deleting password entry
userdel: error deleting shadow password entry
[root ~]# useradd example
useradd: user example exists
[root ~]# su example
bash-3.2$ whoami
example
bash-3.2$ groups example
example : Users
bash-3.2$ cd
bash: cd: /home/example: No such file or directory
bash-3.2$
答案1
如果在中包含 LDAP /etc/nsswitch.conf
(例如passwd: files ldap
或 等) ,则passwd:compat passwd_compat:ldap
足以看到 LDAP 条目。getent passwd
useradd
这两个实用程序都与 PAM 无关,并且即使 PAM 对 LDAP 一无所知,也能轻松识别 LDAP 条目。
顺便说一句,如果您正在nscd
运行,请记住在更改后重新启动它nsswitch.conf
。
答案2
停止 sssd 服务后,我可以删除用户并再次添加他(我不知道它在服务器上)
service sssd stop
deluser -f MyUser