在 Ubuntu 里,deluser(或 userdel 的图形/封装版)常用于交互式删除用户,但它也可以很好地用在脚本里,只要注意避免交互和错误处理即可。
下面从基本用法 → 脚本示例 → 注意事项说明。
deluser username
deluser --remove-home username
deluser --remove-home --remove-all-files username
#!/bin/bash
USER="testuser"
if id "$USER" &>/dev/null; then
deluser --remove-home "$USER"
echo "用户 $USER 已删除"
else
echo "用户 $USER 不存在"
fi
deluser 在某些配置下可能提示:
deluser --remove-home username
否则脚本会“卡住”。
deluser --system username
如果用户有专属组:
deluser username
groupdel username 2>/dev/null
脚本通常以 root 运行:
sudo ./delete_user.sh
或脚本内:
if [ "$(id -u)" -ne 0 ]; then
echo "请使用 root 运行"
exit 1
fi
#!/bin/bash
set -e
USER="$1"
if [ -z "$USER" ]; then
echo "用法: $0 用户名"
exit 1
fi
if ! id "$USER" &>/dev/null; then
echo "用户 $USER 不存在"
exit 0
fi
deluser --remove-home "$USER"
echo "用户 $USER 删除成功"
使用:
sudo ./deluser.sh alice
| 命令 | 特点 |
|---|---|
| deluser | Debian/Ubuntu 推荐,更安全 |
| userdel | 更底层,参数少 |
脚本中优先用 deluser
如果你有具体场景(比如:批量删用户、LDAP、Docker、CI 环境),我可以给你更针对性的脚本。