当我尝试删除我的用户(从 root shell)时,它说userdel: cannot remove entry 'itaig' from /etc/passwd
该用户甚至没有显示在/etc/passwd
。
[root@ab2c1 ~]# su - itaig
su: warning: cannot change directory to /home/itaig: No such file or directory
-bash-4.1$ exit
logout
[root@ab2c1 ~]# mkdir /home/itaig
[root@ab2c1 ~]# chown itaig.itaig /home/itaig/
[root@ab2c1 ~]# grep itaig /etc/passwd
[root@ab2c1 ~]# grep itaig /etc/shadow
[root@ab2c1 ~]# userdel -rf itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@ab2c1 ~]#
我在其他服务器上也遇到了完全相同的问题,但我找不到它们之间的共同点:
[root@amad ~]# userdel itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@amad ~]# useradd itaig
useradd: user 'itaig' already exists
[root@amad ~]#
为什么我的用户没有显示在 /etc/passwd 中,但仍存在于系统中?我检查过/etc/nsswitch.conf
,没有发现问题... 可以做些什么来解决这个问题?
strace userdel itaig
编辑:可以在这里找到 输出:http://pastebin.com/FFkcQ3fj
输出如下strace useradd itaig
:
http://pastebin.com/twRQ7ps0
第二次编辑:似乎如果我手动添加我的用户/etc/shadow
,/etc/group
然后我可以使用命令删除该用户userdel itaig
,但即便如此,我也无法重新创建该用户,因为我收到一条错误消息,提示该用户已存在。如能得到任何帮助,我将不胜感激!
[root@ab2c1 ~]# userdel itaig
[root@ab2c1 ~]# useradd itaig
useradd: user 'itaig' already exists
[root@ab2c1 ~]# userdel itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@ab2c1 ~]# grep itaig /etc/passwd
[root@ab2c1 ~]# grep itaig /etc/group
[root@ab2c1 ~]# grep itaig /etc/shadow
[root@ab2c1 ~]# id itaig
uid=509(itaig) gid=510(itaig) groups=510(itaig)
[root@ab2c1 ~]#
内容/etc/nsswitch.conf
:
passwd: files nis
shadow: files nis
group: files nis
#hosts: db files nisplus nis dns
hosts: files nis dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
请问一下命令的信息从哪里来id
的:
[root@ab2c1 ~]# grep itaig /etc/passwd
[root@ab2c1 ~]# grep itaig /etc/shadow
[root@ab2c1 ~]# grep itaig /etc/group
[root@ab2c1 ~]# id itaig
uid=509(itaig) gid=510(itaig) groups=510(itaig)
[root@ab2c1 ~]#
答案1
阅读并尝试pwconv
、pwunconv
和pwck
命令以使您的 passwd 和 shadow 文件再次同步。然后尝试使用您的userdel
。
另外,您在 /etc/nsswitch.conf 文件中保留 nis 和 nisplus 定义的原因是什么?我见过不必要的命名服务导致各种功能滞后,因为它们正在查找您环境中未实现的服务。我还会清除所有这些服务,看看您的userdel
问题是否有所改善。