云网牛站
所在位置:首页 > Linux命令 > 使用useradd、adduser、newusers命令在Linux中创建用户帐户

使用useradd、adduser、newusers命令在Linux中创建用户帐户

2019-03-12 15:38:51作者:叶云稿源:云网牛站

本文介绍在Linux系统中创建用户帐户的三种方法:使用useradd、adduser、newusers命令,其中可以使用带脚本的useradd命令在Linux中创建批量用户帐户。

 

前言

用户帐户创建是每个Linux系统管理员必会的基本操作,每当新员工加入我们的组织时,我们都需要执行此任务。

如果Linux系统与AD集成以进行单点登录(SSO),则无需为新员工创建帐户。但是,你需要根据其角色和部门在相应的本地组中分配用户。

每个人都知道用户信息驻留在/etc/passwd文件中,它是一个文本文件,包含有关每个用户的基本信息,当我们创建新用户时,新用户详细信息将附加到此文件中。

在创建新用户时,将修改以下四个文件:

/etc/passwd:用户详细信息将在此文件中更新。

/etc/shadow:用户密码信息将在此文件中更新。

/etc/group:将更新此文件中新用户的组详细信息。

/etc/gshadow:将更新文件中新用户的组密码信息。

它可以通过三个命令完成:

useradd:创建新用户或更新默认新用户信息。

adduser:使用所有默认参数创建新用户或更新默认新用户信息。

newusers:批量更新和创建新用户。

 

一、在Linux中使用useradd命令创建用户帐户

useradd命令使用在useradd -D命令输出中指定的默认值创建新用户帐户。

useradd命令将更新系统文件,并创建新用户的主目录并复制初始文件:

# useradd thanu

如果你创建新帐户,则应将密码设置为该帐户,使用passwd命令设置密码:

# echo "new_password" | passwd --stdin thanu

Changing password for user thanu.

passwd: all authentication tokens updated successfully.

设置复杂密码的参考文章:在Ubuntu/Debian系统中强制执行强大的用户密码策略

 

二、使用adduser命令在Linux中创建用户帐户

adduser不是标准的Linux命令,它创建一个具有所有默认参数的新用户,这些参数在useradd命令中不可用,但是,它在后台使用useradd命令来执行此任务。

此外,它还在创建时为用户添加密码:

# adduser renu

Adding user `renu' ...

Adding new group `renu' (1002) ...

Adding new user `renu' (1002) with group `renu' ...

Creating home directory `/home/renu' ...

Copying files from `/etc/skel' ...

Enter new UNIX password: 

Retype new UNIX password: 

passwd: password updated successfully

Changing the user information for renu

Enter the new value, or press ENTER for the default

Full Name []: Renu

Room Number []: 

Work Phone []: 9600106327

Home Phone []: 

Other []: 

Is the information correct? [Y/n] Y

关于强密码的设置参考:在Linux系统终端中生成随机强密码的方法

 

三、在Linux中使用newusers命令创建批量用户帐户

newusers命令读取给定文件并使用此信息更新一组现有用户或创建新用户,每行的格式与标准密码文件的格式相同。

在执行此操作之前,我们需要从passwd文件中获取最新的GID和UID:

# tail -5 /etc/passwd

gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false

daygeek:x:1000:1000:daygeek,,,:/home/daygeek:/bin/bash

sshd:x:122:65534::/run/sshd:/usr/sbin/nologin

thanu:x:1001:1001::/home/thanu:/bin/sh

renu:x:1002:1002:Renu,,9600106327,:/home/renu:/bin/bash

创建一个名为user-add.txt的文件,其详细信息应采用以下格式,每个用户行应该在单独的行中:

User_Name:Password:UID:GID:Comments:User_Home_Directory:Users_Shell_Name

我在文件中添加了五个用户,使用cat命令列出用户:

# cat user-list.txt

2gadmin:2gadmin123:1003:1003::/home/2gadmin:/bin/bash

testuser:testuser123:1004:1004::/home/testuser:/bin/bash

demouser:demouser123:1005:1005::/home/demouser:/bin/bash

sudha:sudha123:1006:1006::/home/sudha:/bin/bash

suresh:suresh123:1007:1007::/home/suresh:/bin/bash

使用文件名运行newusers命令以在Linux系统中创建批量用户:

# newusers user-list.txt

我们可以通过运行以下命令来双重确认:

# grep "2gadmin\|testuser\|demouser\|sudha\|suresh" /etc/passwd

2gadmin:x:1003:1003::/home/2gadmin:/bin/bash

testuser:x:1004:1004::/home/testuser:/bin/bash

demouser:x:1005:1005::/home/demouser:/bin/bash

sudha:x:1006:1006::/home/sudha:/bin/bash

suresh:x:1007:1007::/home/suresh:/bin/bash

 

四、使用带脚本的useradd命令在Linux中创建批量用户帐户

如果要在Linux系统中创建多个用户,请使用以下脚本。

我在文件中添加了以下三个用户,使用任何文件命令列出文件中的用户:

# cat user-list1.txt

user1

user2

user3

创建以下小shell脚本来实现此目的:

# vi user-add.sh

#!/bin/sh

for user in `more user-list1.txt`

do

echo "$user"

useradd $user

echo "$user@123" | passwd --stdin "$user"

chage -d 0 $user

done

为user-add.sh文件设置可执行权限:

# chmod +x user-add.sh

最后运行脚本来实现这一目标:

# sh user-add.sh

user1

Changing password for user user1.

passwd: all authentication tokens updated successfully.

user2

Changing password for user user2.

passwd: all authentication tokens updated successfully.

user3

Changing password for user user3.

passwd: all authentication tokens updated successfully.

我们可以通过运行以下命令来双重确认:

# grep "user1\|user2\|user3" /etc/passwd

user1:x:1008:1008::/home/user1:/bin/sh

user2:x:1009:1009::/home/user2:/bin/sh

user3:x:1010:1010::/home/user3:/bin/sh

至此,目的达到。

 

相关主题

在Linux系统下查找所有sudo用户的方法

Linux命令子频道
精选文章
热门文章