温馨提示×

ubuntu deluser怎么批量配置

小樊
46
2026-10-08 07:57:31
栏目: 智能运维

在 Ubuntu 里,deluser(或 userdel)本身是一次只能删一个用户的命令,没有“批量”参数。所谓“批量配置”,通常是通过 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

⚠️ 建议先 echo 测试:

while read user; do
    echo "will delete: $user"
done < users.txt

二、用通配/正则批量删一类用户

比如删除 test01 ~ test99:

for i in $(seq -w 1 99); do
    deluser "test$i"
done

或删除以 tmp 开头的用户:

for u in $(getent passwd | grep '^tmp' | cut -d: -f1); do
    deluser "$u"
done

三、批量删除并清理系统资源(进阶)

删除用户 + 家目录 + 邮件 + 计划任务

while read user; do
    deluser --remove-home "$user"
    crontab -r -u "$user" 2>/dev/null
done < users.txt

四、使用 userdel(底层命令)

deluser 是 Debian/Ubuntu 封装版,也可以用 userdel:

while read user; do
    userdel -r "$user"
done < users.txt

参数说明:

  • -r:删除家目录和邮件池

五、安全建议(很重要)

  1. 不要删除正在登录的用户
who
  1. 不要误删系统用户(UID < 1000)
awk -F: '$3 < 1000 {print $1}' /etc/passwd
  1. 生产环境先 dry-run
deluser --help

六、如果你说的是“批量创建 + 删除”

可以告诉我:

  • 是否从 LDAP / 脚本 / 云平台同步?
  • 是一次性清理,还是周期性任务?

我可以帮你写一整套 adduser + deluser 批量管理脚本。

需要我帮你写一个完整可用的脚本模板吗?

0 踩