温馨提示×

ubuntu deluser怎样批量删用户

小樊
38
2026-09-23 17:06:59
栏目: 智能运维

在 Ubuntu 里,deluser 本身不支持一次性批量删除用户,但可以通过 Shell 循环 来实现批量删除。下面给你几种常见、实用的方法。


一、用 for 循环批量删除(最常用)

1️⃣ 指定用户列表删除

for user in user1 user2 user3; do
    sudo deluser --remove-home "$user"
done
  • --remove-home:同时删除用户主目录
  • 如果不加,只删用户不删目录

2️⃣ 从文件读取用户批量删除

假设有一个文件 users.txt,每行一个用户名:

while read user; do
    sudo deluser --remove-home "$user"
done < users.txt

二、按条件批量删除(高级用法)

删除某个 UID 范围内的用户(如 1000–1999)

for user in $(awk -F: '$3>=1000 && $3<2000 {print $1}' /etc/passwd); do
    sudo deluser --remove-home "$user"
done

删除某些前缀的用户

for user in $(getent passwd | awk -F: '$1 ~ /^test/ {print $1}'); do
    sudo deluser --remove-home "$user"
done

三、删除前先确认(安全做法)

for user in user1 user2; do
    echo "即将删除: $user"
done

确认没问题后再执行删除命令。


四、注意事项(很重要)

  1. 不能删除当前登录用户
  2. 删除前建议备份:
    sudo tar czf /backup/home.tar.gz /home
    
  3. 如果用户有运行中的进程:
    sudo pkill -u username
    
  4. 系统用户(UID < 1000)不要随便删

五、deluser 常用参数

deluser 用户名            # 删除用户
deluser --remove-home 用户名   # 删除用户及家目录
deluser --remove-all-files 用户名  # 删除用户所有文件

如果你愿意,可以告诉我:

  • 用户是怎么来的(脚本创建 / 手动 / 批量导入)
  • 是否要保留家目录
  • 是否是服务器环境

我可以帮你写一条完全适合你场景的批量删除命令。

0 踩