newusers是Linux中用于批量创建或更新用户账户的命令,通过读取包含用户名、加密密码、UID等7字段的文本文件,自动创建用户、组、家目录并写入/etc/passwd和/etc/shadow。

Linux 中批量导入导出系统运维用户,核心是围绕 newusers(导入)和 getent + awk 或 cut(导出)配合 chpasswd(设密)来完成。这不是“一键备份还原”式的操作,而是结构化、可审计、可复用的用户账户迁移流程。
批量导入运维用户(newusers + chpasswd)
这是最标准、最安全的批量创建方式,适合教学环境、测试集群或新服务器初始化。
- 准备用户信息文件(如 users.csv),每行一个用户,格式为:
用户名:加密密码:UID:GID:全名:家目录:登录shell
例如:ops01:$6$abc123$xyz...:1010:1010:运维账号01:/home/ops01:/bin/bash - 密码必须是加密后的字符串,不能明文。生成方法:
openssl passwd -6 "明文密码"或mkpasswd -s -m sha-512 - 执行导入:
sudo newusers users.csv
它会自动创建用户、组、家目录(若指定路径且含-m风格逻辑)、写入/etc/passwd和/etc/shadow - 如果文件中密码字段留空(如
ops01::1010:1010:...:),则用户被创建但禁用登录;后续可用chpasswd单独注入密码 - 补充设密(适用于密码未内嵌在 users.csv 中):
另建 pw.txt,格式为用户名:明文密码(注意:这里是明文),然后运行:sudo chpasswd < pw.txt
批量导出当前运维用户(提取有效账户信息)
导出不是直接复制 /etc/passwd,而是筛选出你真正管理的“运维类用户”,排除系统账户(UID < 1000)和无用服务账户。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 导出用户基础信息(类 newusers 格式):
getent passwd | awk -F: '$3 >= 1000 && $3 < 60000 {print $1 ":" $2 ":" $3 ":" $4 ":" $5 ":" $6 ":" $7}' > export_users.csv
这条命令只取 UID 在 1000–59999 区间的普通用户,并按 newusers 要求的 7 字段输出 - 单独导出密码哈希(仅限有权限读
/etc/shadow):sudo getent shadow | awk -F: '$3 >= 1000 && $3 < 60000 {print $1 ":" $2}' > export_pw.csv
注意:普通用户无法读/etc/shadow,必须加sudo - 若只需用户名列表(比如用于后续脚本处理):
getent passwd | awk -F: '$3 >= 1000 && $3 < 60000 {print $1}' > userlist.txt
运维用户专项建议(权限与安全)
运维用户往往需要 sudo 权限、特定组归属、受限 shell 或 SSH 密钥预置,这些不能靠 newusers 自动完成,需额外配置。
- 导入后批量加 sudo 权限:
for u in $(cat userlist.txt); do usermod -aG wheel "$u"; done(CentOS/RHEL)或sudo adduser "$u" sudo(Ubuntu/Debian) - 限制登录方式:用
usermod -s /sbin/nologin "$u"禁用交互 shell,仅允许 SSH 密钥登录;或设为/usr/sbin/nologin - 预置 SSH 公钥:导入用户后,用脚本批量将公钥写入
/home/$u/.ssh/authorized_keys,并修复权限:chmod 700 /home/$u/.ssh && chmod 600 /home/$u/.ssh/authorized_keys && chown -R "$u":"$u" /home/$u/.ssh - 避免 UID 冲突:导出时记录 UID,导入前用
id -u 用户名 2>/dev/null || echo "不存在"检查重名;也可在 newusers 文件中显式指定 UID/GID,确保一致性
不推荐但常见误区
有些做法看似快捷,实则埋下隐患,尤其对运维用户这种高权限角色。
- 用
for循环调useradd:易因空格、特殊字符、并发冲突出错;缺少统一密码策略和家目录初始化逻辑 - 直接复制
/etc/passwd和/etc/shadow到另一台机器:密码哈希可能依赖不同加密算法(如 SHA-256 vs SHA-512),且系统默认值(如密码过期策略)不一致,导致登录失败 - 用明文密码写进脚本或 CSV:违反最小权限和保密原则;
chpasswd支持明文输入,但应确保文件权限为600且用完即删 - 忽略家目录权限:newusers 创建的目录默认属主正确,但若后续手动
mkdir,常忘记chown和chmod 700,造成越权访问风险

















