在 Ubuntu(及 Debian 系)中使用 deluser(或底层命令 userdel)删除用户时,有一些容易踩坑的配置和注意事项。下面按「必看 → 常见 → 进阶」整理:
先确认用户是否在线:
who
w
若用户已登录,先让其退出,或强制踢出:
pkill -KILL -u username
deluser ≠ userdel(Ubuntu 推荐用 deluser)Ubuntu 官方推荐:
deluser 用户名
而不是:
userdel 用户名
deluser 更安全,会调用正确脚本。
默认 不会 删除家目录:
deluser alice
只删用户,保留 /home/alice
✅ 想连家目录一起删:
deluser --remove-home alice
✅ 连邮件池也删:
deluser --remove-home --remove-mail-spool alice
如果用户有同名私有组:
deluser alice
通常会自动删除 alice 组(如果没有其他用户)
⚠️ 如果用户属于其他组(如 sudo, docker):
groups alice
如果用户还有进程:
deluser alice
可能报错或卡住
✅ 先查:
ps -u alice
✅ 再杀:
pkill -u alice
删除用户前检查:
crontab -l -u alice
ls /etc/cron.d/
systemctl --user -u alice
否则:
即使用户删了:
/etc/sudoers
/etc/sudoers.d/
里可能还有:
alice ALL=(ALL) NOPASSWD:ALL
建议手动清理。
用户删除后:
✅ 删除前可查找:
find / -uid 1001
--backup(推荐生产)deluser --remove-home --backup alice
会先备份家目录到 /var/backups/
系统用户(如 www-data, mysql):
deluser mysql # ❌ 危险
可能导致服务无法启动。
id alice && deluser --remove-home alice
# 1. 确认无进程
pkill -KILL -u alice
# 2. 删除用户+家目录+备份
deluser --remove-home --backup alice
# 3. 清理 sudo
vim /etc/sudoers.d/alice
如果你愿意,我可以: