Ubuntu deluser支持批量操作,但需通过编写脚本(如bash脚本)实现,因为deluser
命令本身仅支持删除单个用户。以下是具体实现方法及注意事项:
创建一个文本文件(如users_to_delete.txt
),每行输入一个要删除的用户名(例如):
user1
user2
user3
保存该文件(路径可自定义,默认使用当前目录下的文件)。
使用文本编辑器(如nano
)创建脚本文件(如delete_users.sh
),并粘贴以下内容:
#!/bin/bash
# 指定用户列表文件路径(可根据实际情况修改)
USER_LIST="users_to_delete.txt"
# 检查用户列表文件是否存在
if [ ! -f "$USER_LIST" ]; then
echo "错误:用户列表文件不存在: $USER_LIST"
exit 1
fi
# 逐行读取用户列表并删除用户
while IFS= read -r user; do
# 检查用户是否存在
if id "$user" &>/dev/null; then
# 删除用户及其主目录(--remove-home选项)
sudo deluser --remove-home "$user"
echo "已删除用户: $user"
else
echo "用户不存在,跳过: $user"
fi
done < "$USER_LIST"
echo "批量删除完成"
说明:
USER_LIST
变量指定用户列表文件的路径,可根据需要修改;id "$user" &>/dev/null
用于检查用户是否存在,避免误删;sudo deluser --remove-home "$user"
删除用户及其主目录(若需保留主目录,可去掉--remove-home
选项)。在终端中执行以下命令:
# 赋予脚本执行权限
chmod +x delete_users.sh
# 以root权限运行脚本(需输入密码)
sudo ./delete_users.sh
除上述脚本外,还可通过循环遍历数组的方式实现批量删除(适用于已知固定用户列表的情况):
#!/bin/bash
# 定义要删除的用户数组(替换为实际用户名)
users=("user1" "user2" "user3")
for user in "${users[@]}"; do
if id "$user" &>/dev/null; then
sudo deluser --remove-home "$user"
echo "已删除用户: $user"
else
echo "用户不存在,跳过: $user"
fi
done
echo "批量删除完成"
sudo
命令(运行脚本时也需输入密码)。/home
目录下的用户文件)。id
命令检查用户是否存在,避免因用户不存在导致的错误(如deluser: user 'xxx' does not exist
)。通过上述方法,即可使用deluser
命令实现Ubuntu系统中的批量用户删除操作。