无法删除用户帐户

hus*_*abi 4 command-line users user-management

在终端中:

/home$ ls
abuabdullah  alzaabi  hussain  u942
Run Code Online (Sandbox Code Playgroud)

然后我尝试u942使用命令行删除帐户:

/home$ deluser u942
/usr/sbin/deluser: Only root may remove a user or group from the system.
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 sudo

/home$ sudo deluser u942
/usr/sbin/deluser: The user `u942' does not exist.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

pLu*_*umo 8

对于 root/sudo 用户,可以只在/home其中创建与任何用户帐户无关的文件夹。这就是为什么ls /home不是检查用户的好命令的原因。

要列出在“/home”下拥有主文件夹的所有用户,您可以运行:

getent passwd | grep "/home" | cut -d: -f1
Run Code Online (Sandbox Code Playgroud)

列出所有用户getent passwd | cut -d: -f1

检查用户 u942 是否存在:getent passwd | grep u942。如果没有输出,则不存在此类用户。

如果输出为空,您可以删除该文件夹(您可能需要 sudo)rm -Rf /home/u942。但是在删除之前仔细检查文件夹的内容。

  • 您给出了原因:“非本地用户”。不能保证非本地用户也有非本地主目录。如果您只阅读 `/etc/passwd`,“如果没有输出,则不存在这样的用户”不一定正确。 (3认同)
  • 您实际上应该使用`getent passwd` 而不是手动阅读`/etc/passwd`。特别是要查看一个 `u942` 是否是系统中的用户:`getent passwd u942`。 (2认同)