使用newusers命令可通过文本文件一次性批量创建多个linux用户。具体步骤为:一、准备格式正确的用户信息文件,每行对应一个用户,字段用冒号分隔,格式类似/etc/passwd;二、以root权限执行sudo newusers users.txt导入用户;三、注意权限问题、密码安全、用户存在性及家目录创建等事项;四、适用于学校、公司批量导入账号、自动化部署及测试环境搭建等场景。
创建Linux用户通常用useradd命令逐个添加,但如果你需要一次性批量创建几十甚至上百个用户,手动操作显然效率太低。这时候,newusers命令就派上用场了。它允许你通过一个文本文件一次性导入多个用户信息,非常适合批量创建场景。
一、准备用户信息文件
newusers的使用前提是准备好一个格式正确的用户信息文件。这个文件每一行对应一个用户,字段之间用冒号(:)分隔,格式和/etc/passwd类似:
username:password:UID:GID:comment:home_directory:shell
- username:用户名
- password:密码(明文或加密后的)
- UID/GID:可以留空由系统自动分配,也可以指定具体数值
- comment:通常是用户的全名或其他描述信息
- home_directory:用户的家目录路径
- shell:登录使用的Shell,如 /bin/bash
举个例子:
test1:123456:::/Test User One:/home/test1:/bin/bash test2:123456:::/Test User Two:/home/test2:/bin/bash
注意:如果直接写明文密码,执行后系统会自动加密存储;如果想提前加密,可以用 mkpasswd 或 openssl 工具生成。
二、使用newusers命令导入用户
准备好文件之后,就可以运行命令来批量创建用户了。假设你的用户信息文件叫 users.txt,执行如下命令:
sudo newusers users.txt
这个过程不会有任何输出,除非出错。你可以检查 /etc/passwd 文件是否新增了这些用户:
grep test /etc/passwd
三、常见问题与注意事项
-
权限问题:必须用 sudo 或 root 权限执行,否则无法修改用户数据库。
-
密码安全风险:如果文件中包含明文密码,一定要设置好文件权限,避免泄露:
chmod 600 users.txt
-
用户已存在:如果某个用户已经存在,newusers会尝试更新其信息,而不是报错。
-
家目录不会自动创建:默认情况下,newusers不会为你创建用户的家目录,如果需要,可以在命令执行后统一运行:
sudo mkhomedir_helper username
或者结合脚本批量创建。
四、适用场景举例
常见的使用场景包括:
- 学校或公司批量导入学生/员工账号
- 自动化部署脚本中初始化多个服务账户
- 搭建测试环境时快速创建多个测试用户
例如,在自动化脚本中,可以先用程序生成users.txt,然后调用newusers完成创建,整个流程无需人工干预。
基本上就这些了。newusers虽然不常被新手使用,但在需要批量处理用户的时候非常实用,掌握它的基本用法能节省不少时间。