在 Ubuntu 里,deluser 是删除用户的标准命令(来自 adduser 包)。写脚本时通常需要注意:是否删除家目录、是否删除邮件池、是否强制删除正在登录的用户 等。
下面给你几个常用、安全的脚本示例。
#!/bin/bash
USERNAME="testuser"
if id "$USERNAME" &>/dev/null; then
sudo deluser "$USERNAME"
echo "用户 $USERNAME 已删除"
else
echo "用户 $USERNAME 不存在"
fi
#!/bin/bash
USERNAME="testuser"
if id "$USERNAME" &>/dev/null; then
sudo deluser --remove-home "$USERNAME"
echo "用户 $USERNAME 及家目录已删除"
else
echo "用户 $USERNAME 不存在"
fi
✅ --remove-home:删除 /home/username
sudo deluser --remove-home --remove-all-files "$USERNAME"
⚠️ 谨慎使用:
--remove-all-files 会扫描整个系统并删除该用户拥有的文件#!/bin/bash
for user in user1 user2 user3; do
if id "$user" &>/dev/null; then
sudo deluser --remove-home "$user"
echo "$user 已删除"
else
echo "$user 不存在"
fi
done
如果用户在登录或进程未结束:
sudo pkill -u username
sudo deluser --remove-home username
或一行:
sudo pkill -u testuser && sudo deluser --remove-home testuser
#!/bin/bash
USERNAME="$1"
if [ -z "$USERNAME" ]; then
echo "用法: $0 用户名"
exit 1
fi
if ! id "$USERNAME" &>/dev/null; then
echo "用户 $USERNAME 不存在"
exit 1
fi
# 杀掉用户进程
sudo pkill -u "$USERNAME"
# 删除用户及家目录
sudo deluser --remove-home "$USERNAME"
echo "用户 $USERNAME 删除完成"
使用:
chmod +x del_user.sh
sudo ./del_user.sh testuser
| 参数 | 作用 |
|---|---|
--remove-home |
删除家目录 |
--remove-all-files |
删除系统所有该用户文件 |
--group |
同时删除同名用户组 |
--disabled-login |
禁用登录(不是删除) |
如果你愿意,可以告诉我:
我可以帮你写更贴合的脚本。