在 Ubuntu 中,deluser(或 userdel)默认不会自动删除用户的所有痕迹,要做到“彻底清除用户”,需要手动处理以下几个方面。
sudo deluser 用户名
如果还要删除用户的家目录和邮件池:
sudo deluser --remove-home 用户名
或更彻底(删除家目录 + 邮件 + 相关文件):
sudo deluser --remove-all-files 用户名
⚠️
--remove-all-files会搜索并删除该用户拥有的所有文件,慎用
sudo userdel 用户名
sudo rm -rf /home/用户名
sudo rm -rf /var/mail/用户名
sudo groupdel 用户名
若该组仍被其他用户使用,会报错,可忽略
sudo crontab -r -u 用户名
或手动删:
sudo rm -f /var/spool/cron/crontabs/用户名
sudo rm -rf /var/lib/systemd/timesync/username
sudo rm -rf /etc/systemd/system/user-.slice*
查看是否还有:
loginctl
sudo deluser 用户名 sudo
或直接编辑:
sudo vigr
sudo vigr -s
grep 用户名 /etc/passwd
grep 用户名 /etc/shadow
grep 用户名 /etc/group
grep 用户名 /etc/gshadow
确保全部为空。
sudo find / -user 用户名 2>/dev/null
如果有,可手动删除或 chown 给其他用户。
sudo journalctl --vacuum-time=7d
或:
sudo rm /var/log/*用户名*
sudo deluser --remove-all-files 用户名
sudo groupdel 用户名
sudo rm -f /var/spool/cron/crontabs/用户名
id 用户名
返回:
id: ‘用户名’: no such user
如果你愿意,可以告诉我:
我可以给你更精准的清理命令。