在 Ubuntu 上,用 deluser(或 userdel)删除用户后,常常会在系统里留下残留文件、进程、权限、配置。可以按下面几类逐项检查。
id 用户名
或
grep 用户名 /etc/passwd
如果还有输出,说明没删干净(可能只删了 home,没删用户)。
ls -ld /home/用户名
如果存在:
rm -rf /home/用户名
注意:
deluser 用户名默认不删 home,需要:deluser --remove-home 用户名
find / -user 旧UID 2>/dev/null
或按用户名(如果 UID 已释放):
find / -name "*用户名*" 2>/dev/null
常见残留位置:
/var/mail/用户名/var/spool/cron/crontabs/用户名/tmp/*/var/lib/清理示例:
rm -f /var/mail/用户名
rm -f /var/spool/cron/crontabs/用户名
ps -u 用户名
或
pgrep -u 用户名
如果有进程:
pkill -u 用户名
或强制:
pkill -9 -u 用户名
groups 用户名
如果用户已删但组还在:
getent group 用户名
删除组:
delgroup 用户名
或
groupdel 用户名
grep 用户名 /etc/sudoers /etc/sudoers.d/*
如果有,手动删除相关行。
systemctl list-units --all | grep 用户名
或相关服务文件:
ls /etc/systemd/system/ | grep 用户名
USER=用户名
id $USER
ls -ld /home/$USER
find / -user $(id -u $USER) 2>/dev/null
ps -u $USER
getent group $USER
grep -R $USER /etc/sudoers /etc/sudoers.d/
deluser 后常见残留是:
如果你愿意,可以告诉我你执行了什么命令、Ubuntu 版本,我可以帮你精确判断哪里没清干净。