在终端中:
/home$ ls
abuabdullah alzaabi hussain u942
然后我尝试u942
使用命令行删除帐户:
/home$ deluser u942
/usr/sbin/deluser: Only root may remove a user or group from the system.
然后我尝试使用 sudo
/home$ sudo deluser u942
/usr/sbin/deluser: The user `u942' does not exist.
我怎么解决这个问题?
答案1
对于 root/sudo 用户,可以只创建/home
不与任何用户帐户关联的文件夹。这就是为什么ls /home
它不是一个检查用户的好命令。
要列出主文件夹位于“/home”下的所有用户,您可以运行:
getent passwd | grep "/home" | cut -d: -f1
列出所有用户:getent passwd | cut -d: -f1
检查用户 u942 是否存在:getent passwd | grep u942
。如果没有输出,则不存在该用户。
如果输出为空,则可以删除该文件夹(可能需要 sudo)rm -Rf /home/u942
。但在删除文件夹之前,请仔细检查文件夹的内容。
答案2
您可能知道,可以创建与“用户名”不同的主目录。例如,我可以有一个名为“john”的用户,其主目录是:/home/jack
。
如果您已经知道用户名,您可以运行:
echo ~username
它将打印特定用户主目录。您还可以运行:
ls -ld /home/u942
或者
stat -c %U /home/u942
查看哪个用户拥有该主目录,然后删除该用户。
也有可能用户已被删除,但其主目录尚未删除。
为了找到它,你可以这样做:
id -un `stat -c %U /home/u942`
如果它没有返回任何内容,则意味着所有者不存在于您的系统中。只需删除该目录即可如果你相信那里没有重要文件。