在 Ubuntu 里,deluser 本身没有原生的“批量删除”参数,但可以通过 Shell 脚本 / 循环 来实现批量操作。下面给你几种常见、可靠的做法。
sudo deluser username
假设有一个用户列表文件 users.txt:
user1
user2
user3
执行:
while read user; do
sudo deluser "$user"
done < users.txt
✅ 推荐做法,安全、可控
while read user; do
sudo deluser --remove-home "$user"
done < users.txt
或:
sudo deluser --remove-all-files 用户名
⚠️ --remove-all-files 会删除该用户所有文件,慎用
while read user; do
sudo deluser --system "$user"
done < users.txt
/etc/passwd 中筛选并批量删除(高级)例如:删除 UID 在 1000–2000 之间的普通用户
awk -F: '$3>=1000 && $3<=2000 {print $1}' /etc/passwd | \
while read user; do
sudo deluser "$user"
done
xargs(不推荐新手)cat users.txt | xargs -I {} sudo deluser {}
⚠️ 出错时不容易控制流程
while read user; do
if id "$user" &>/dev/null; then
echo "将要删除: $user"
sudo deluser "$user"
else
echo "用户不存在: $user"
fi
done < users.txt
查看用户进程:
ps -u username
强制杀进程(谨慎):
sudo pkill -u username
✅ 最安全批量方式
while read user; do
sudo deluser --remove-home "$user"
done < users.txt
如果你愿意,可以告诉我:
我可以帮你写一套更合适的脚本。