侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux newusers命令教程:如何简单的批量创建用户(附实例教程和注意事项)

在Linux系统管理中,我们有时候需要批量创建用户,这个任务如果手动完成会非常耗时。幸运的是,Linux提供了一个强大的命令newusers来简化这一过程。以下是关于newusers命令的详尽介绍和实例教程。

Linux newusers命令介绍

newusers命令用于批量创建或更新系统用户。它读取文本文件中的一系列行,每行格式遵循/etc/passwd的结构,并根据这些信息创建或更新用户账户。这个命令特别适用于管理员在初始化系统或将用户从其他系统迁移时批量添加用户账户。

Linux newusers命令适用的Linux版本

newusers命令在大多数Linux发行版中都可用,包括Debian, Ubuntu, Fedora, CentOS和Red Hat等。但是,CentOS 7和CentOS 8可能需要安装newusers命令,因为它并不总是默认安装的。

对于CentOS 7,使用Yum安装:

[linux@bashcommandnotfound.cn ~]$ sudo yum install passwd

对于CentOS 8,使用dnf安装:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install passwd

Linux newusers命令的基本语法

newusers [options] file

file 指定包含新用户账户数据的文本文件。

Linux newusers命令的常用选项或参数说明

选项描述
-r报告但不执行任何更改

Linux newusers命令的实例

使用newusers命令时,你需要准备一个格式正确的文本文件,其中包含了用户的详细信息。以下是一些实例,展示了如何利用newusers命令进行用户管理。

实例1:创建单个用户

假设要创建的用户信息已经写在newuser.txt文件中,格式如下:

johndoe:x:1001:1001:John Doe:/home/johndoe:/bin/bash

在终端中执行以下命令来创建用户:

[linux@bashcommandnotfound.cn ~]$ newusers newuser.txt

实例2:同时创建多个用户

如果要创建多个用户,可以在batchusers.txt文件中列出所有用户,每个用户信息占一行:

janedoe:x:1002:1002:Jane Doe:/home/janedoe:/bin/bash
alexsmith:x:1003:1003:Alex Smith:/home/alexsmith:/bin/zsh

执行命令:

[linux@bashcommandnotfound.cn ~]$ newusers batchusers.txt

实例3:更新现有用户密码

若需要批量更新用户密码,可以在文件中提供当前用户名和新密码:

johndoe:NewPassword123:1001:1001:John Doe:/home/johndoe:/bin/bash

然后使用newusers更新密码:

[linux@bashcommandnotfound.cn ~]$ newusers newpasswords.txt

实例4:创建用户时指定不同的默认shell

如果需要为新用户指定不同的默认shell,可以在文件中这样操作:

chris:x:1004:1004:Chris:/home/chris:/bin/csh

运行命令后,Chris的默认shell将被设为/bin/csh

[linux@bashcommandnotfound.cn ~]$ newusers usershell.txt

实例5:批量删除用户

虽然newusers命令本身不支持直接删除用户,但我们可以借助其他命令来实现。首先创建一个包含所有要删除用户的文件deleteusers.txt,格式如下:

johndoe
janedoe

然后使用shell脚本结合userdel命令进行批量删除:

[linux@bashcommandnotfound.cn ~]$ while read user; do sudo userdel -r $user; done < deleteusers.txt

实例6:导入用户列表并创建用户

假设你有一个CSV文件users.csv,列出了需要创建的用户和信息。你可以使用awk命令将其格式化为newusers可以接受的格式,并创建用户:

[linux@bashcommandnotfound.cn ~]$ awk -F',' '{print $1":x:"$2":"$3":"$4":"$5":"$6}' users.csv > newusers.txt
[linux@bashcommandnotfound.cn ~]$ newusers newusers.txt

确保users.csv文件中的内容格式如下(每列由逗号分隔):

username,UID,GID,full name,home directory,shell

实例7:创建用户并指定用户组

在创建用户时,您可能还需要指定用户应属于的组。在您的文本文件(如 groupusers.txt)中,您可以如下所示包含组信息:

martin:x:1005:1000:Martin:/home/martin:/bin/bash
lucy:x:1006:1000:Lucy:/home/lucy:/bin/bash

在此示例中,1000是组ID,假设它对应于一个已存在的组。运行命令:

[linux@bashcommandnotfound.cn ~]$ newusers groupusers.txt

实例8:创建用户时添加额外的用户信息

您可以在文件中包含额外的用户信息,如用户的全名和联系信息。如 infousers.txt 中的以下内容:

daniel:x:1007:1007:Daniel Brown, Room 401, +123456789:/home/daniel:/bin/bash
elaine:x:1008:1008:Elaine Smith, Room 402, +987654321:/home/elaine:/bin/bash

执行命令:

[linux@bashcommandnotfound.cn ~]$ newusers infousers.txt

实例9:结合使用newusers和密码加密

通常情况下,您不应该在文本文件中以纯文本形式存储密码。但如果您确实需要这样做,可以在创建用户前对密码进行加密。这通常是一个多步骤的过程,首先使用某种工具加密密码,然后将加密后的密码放入 newusers 文本文件中。

实例10:用newusers命令和循环创建一系列用户

如果您需要创建一系列相似的用户,例如具有序列用户名的用户(user1, user2, user3, ...),您可以使用 shell 脚本生成newusers命令的输入文件:

[linux@bashcommandnotfound.cn ~]$ for i in {1..10}; do echo "user$i:x:10$i:10$i:User $i:/home/user$i:/bin/bash" >> seriesusers.txt; done
[linux@bashcommandnotfound.cn ~]$ newusers seriesusers.txt

这会创建10个名为 user1 到 user10 的用户。

实例11:创建用户并设置账户到期日期

您可能需要创建用户账户并设置一个到期日期,以便用户在特定日期后无法登录。newusers命令本身不支持直接设置账户到期日期,但您可以在创建用户后使用 chage 命令来设置。首先使用newusers创建用户:

karen:x:1009:1009:Karen:/home/karen:/bin/bash

然后使用 chage 设置到期日期:

[linux@bashcommandnotfound.cn ~]$ chage --expiredate 2024-12-31 karen

实例12:导入用户并设置随机密码

如果您需要设置随机密码,可以结合使用 newusers 和其他命令来完成。首先创建用户,然后使用 chpasswd 命令配合随机密码生成器为用户设置密码。例如:

[linux@bashcommandnotfound.cn ~]$ newusers users.txt
[linux@bashcommandnotfound.cn ~]$ for user in $(awk -F':' '{print $1}' users.txt); do echo "$user:$(openssl rand -base64 12)" | chpasswd; done

这将为 users.txt 文件中的每个用户设置一个随机的12字符密码。

Linux newusers命令的注意事项

  • 确保输入文件的格式正确,每个字段都必须使用冒号分隔,并且遵循/etc/passwd的结构。
  • 使用newusers命令时应该具有管理员权限,因为它会修改系统文件。
  • 如果遇到bash: newusers: command not found,请根据您的Linux发行版安装newusers命令。
0

评论区