无法从 Linux CentOS 6.3 机器上删除用户,怎么办?

Ita*_*not 9 passwd user-accounts centos6

当我尝试删除我的用户(从 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 ~]#
Run Code Online (Sandbox Code Playgroud)

我在其他服务器上也有完全相同的问题,但我找不到它们之间的共同点:

[root@amad ~]# userdel itaig
userdel: cannot remove entry 'itaig' from /etc/passwd
[root@amad ~]# useradd itaig
useradd: user 'itaig' already exists
[root@amad ~]# 
Run Code Online (Sandbox Code Playgroud)

为什么我的用户没有显示在 /etc/passwd 中,但仍然存在于系统中?我已经检查/etc/nsswitch.conf并发现那里没有问题...可以做些什么来解决这个问题?

编辑:strace userdel itaig可以在这里找到输出:http : //pastebin.com/FFkcQ3fj

和输出strace useradd itaighttp : //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 ~]# 
Run Code Online (Sandbox Code Playgroud)

内容/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
Run Code Online (Sandbox Code Playgroud)

我想知道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 ~]#
Run Code Online (Sandbox Code Playgroud)

Ton*_*aro -1

阅读并尝试使用pwconvpwunconvpwck命令来使您的密码和影子文件再次同步。然后尝试使用您的userdel.

另外,您是否有理由在 /etc/nsswitch.conf 文件中保留 nis 和 nisplus 定义?我发现不必要的命名服务会导致各种功能出现滞后,因为它们正在对您的环境中未实现的服务执行查找。我还会清除所有这些内容,看看您的userdel问题是否有任何改善。

  • “继续阅读”并不是答案。 (7认同)
  • 看来我无法删除该用户,因为它已添加到 NIS 服务器上...谢谢。 (4认同)