在 Ubuntu 上执行 deluser(或 userdel)删除用户后,可以从用户是否存在、相关文件、权限、进程、登录能力等多个角度来验证。下面按常用场景给你一个完整检查清单。
/etc/passwdgrep 用户名 /etc/passwd
✅ 无输出 → 用户已删除
❌ 有输出 → 用户仍在
id 命令id 用户名
✅ 输出类似:
id: ‘用户名’: no such user
❌ 有 uid/gid 信息 → 用户仍存在
/etc/groupgrep 用户名 /etc/group
--remove-home)ls /home/用户名
或
ls /home
✅ 目录不存在 → 已删除
❌ 仍存在 → 需要手动删除(或之前没加参数)
du -sh /home/用户名
ls /var/mail/用户名
或
ls /var/spool/mail/
✅ 不存在 → 已清理
❌ 存在 → 可手动删除:
rm -f /var/mail/用户名
ps -u 用户名
或
pgrep -u 用户名
✅ 无输出 → 无进程
❌ 有输出 → 该用户仍有进程在运行(需先 kill)
su - 用户名
✅ 提示:
Authentication failure
或
Cannot find user
ssh 用户名@localhost
✅ 登录失败 → 用户已失效
| 参数 | 作用 |
|---|---|
deluser 用户名 |
只删除用户 |
deluser --remove-home 用户名 |
删除用户 + 家目录 |
deluser --remove-all-files 用户名 |
删除用户 + 所有文件 |
deluser --group 组名 |
删除组 |
USER=testuser
echo "Check /etc/passwd"
grep "^$USER:" /etc/passwd && echo "User exists" || echo "User deleted"
echo "Check /etc/group"
grep "^$USER:" /etc/group && echo "Group exists" || echo "Group deleted"
echo "Check home"
ls /home/$USER 2>/dev/null && echo "Home exists" || echo "Home deleted"
echo "Check mail"
ls /var/mail/$USER 2>/dev/null && echo "Mail exists" || echo "Mail deleted"
echo "Check process"
ps -u $USER >/dev/null 2>&1 && echo "Process running" || echo "No process"
ls /home/用户名/.ssh/
kill -9 PID
如果你愿意,可以告诉我:
deluser 还是 userdel--remove-home我可以帮你给出针对你场景的精确验证方案。