在 Debian(及大多数 Linux 发行版)中,deluser 本身不支持一次性批量删除用户,但你可以结合 Shell 循环来实现“批量删除”。下面给你几种常见、实用的做法。
假设你有一个文件 users.txt,每行一个用户名:
user1
user2
user3
while read user; do
deluser "$user"
done < users.txt
while read user; do
deluser --remove-home "$user"
done < users.txt
for user in user1 user2 user3; do
deluser --remove-home "$user"
done
for user in $(getent passwd | awk -F: '$1 ~ /^test/ {print $1}'); do
deluser --remove-home "$user"
done
⚠️ 注意:不要删除系统用户(UID < 1000)
更安全的写法:
for user in $(getent passwd | awk -F: '$3 >= 1000 {print $1}'); do
deluser --remove-home "$user"
done
deluser --remove-home --remove-all-files username
如果只想删除用户但保留组:
deluser username
getent passwd | grep username
或:
id username
tar czf /backup/home.tar.gz /home
pkill -u username
如果你愿意,可以告诉我:
我可以帮你写一条安全可控的一键脚本。