在 Ubuntu 里 deluser 删不干净,通常不是命令坏了,而是它默认只做“最小清理”,很多东西需要你显式指定才会删。下面把常见原因和解决办法一次说清。
sudo deluser username
默认不会删 /home/username
✅ 正确做法:
sudo deluser --remove-home username
即使家目录删了,这些还在:
/var/mail/username/var/spool/cron/crontabs/username/tmp/*find 可查)查找残留文件:
sudo find / -user username 2>/dev/null
deluser 只删用户,不会自动清理自定义组
查看:
getent group | grep username
如果还有同名组:
sudo delgroup username
有时用户“删了”,但:
检查:
ps -u username
如果有进程:
sudo kill -9 <pid>
userdel 而不是 deluserUbuntu 推荐用 deluser(更友好)
但如果你用了:
sudo userdel username
也一样默认不删家目录
✅ 等价写法:
sudo userdel -r username
检查:
groups username
如果还在 sudo:
sudo deluser username sudo
# 1. 杀掉进程
sudo pkill -u username
# 2. 删用户 + 家目录 + mail
sudo deluser --remove-home username
# 3. 删同名组(如有)
sudo delgroup username 2>/dev/null
# 4. 清残留文件
sudo find / -user username 2>/dev/null
deluser删不干净,是因为它“太温柔”
家目录、文件、组、进程都要你手动或加参数清理
如果你愿意,可以把你执行的命令和 getent passwd username 的结果贴出来,我可以直接帮你判断卡在哪一步。