linux USERADD 命令

当使用 useradd 命令创建时,我们如何知道会为用户分配哪些默认值?

下面这两个文件包含使用 useradd 创建时要分配给用户的默认值

# less /etc/default/useradd
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes 

您还可以使用以下命令查看为要创建的新用户设置的默认参数

# useradd -D
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes 

第二个文件包含 useradd 命令使用的 UID、GID、密码加密方法和到期相关信息的值

# less /etc/login.defs
 MAIL_DIR        /var/spool/mail
 
PASS_MAX_DAYS   99999
 PASS_MIN_DAYS   0
 PASS_MIN_LEN    5
 PASS_WARN_AGE   7
UID_MIN                   500
 UID_MAX                 60000
GID_MIN                   500
 GID_MAX                 60000
CREATE_HOME     yes
 UMASK           077
USERGROUPS_ENAB yes
 ENCRYPT_METHOD SHA512

1、如何修改useradd命令的默认值?

我们可以打开 /etc/default/useradd 文件并编辑该文件,也可以使用 CLI 执行相同操作,如下所示

更改所有新用户的默认主目录位置

# useradd -D -b /opt/users 
# useradd -D | grep HOME
 HOME=/opt/users 

更改默认登录 shell

# useradd -D -s /bin/sh 
# useradd -D | grep -i shell
 SHELL=/bin/sh 

现在,如果您想在创建用户时向用户添加自定义参数,该怎么办。 让我们详细讨论可以与 useradd 命令一起使用的不同选项

2.创建多个相同UID的用户

# useradd -o jack -u 501
 # useradd -o deep -u 501
 # useradd -o user -u 501 

验证新创建用户的UID

# grep 501 /etc/passwd
jack:x:501:501::/home/jack:/bin/sh
 deep:x:501:504::/home/deep:/bin/sh
 user:x:501:505::/home/user:/bin/sh

3.手动为用户分配一个UID

默认情况下,当我们运行 useradd 命令时,用户会自动获得超过 500 的任何免费 uid。
但是如果你想手动给你的用户分配一个 uid 怎么办

# useradd -u 550 jack 

让我们验证分配给 jack 的 uid

# id jack
 uid=550(jack) gid=550(jack) groups=550(jack)

4.创建没有主目录的用户

# useradd -M test 
# su - test
 su: warning: cannot change directory to /home/test: No such file or directory
-bash-4.1$pwd
 /root

5. 使用自定义主目录创建用户

# useradd -d /home/users/test test 
# su - test
$pwd
 /home/users/test

6. 将用户添加到不同的主要组

默认情况下,当我们运行 useradd 命令时,会在 /etc/group 中创建一个具有相同名称的组,但是如果我们不希望创建具有相同名称的组,而是将用户添加到某个不同的现有组,该怎么办。

这里我们将创建一个用户“deep”并将他添加到“admin”组,而不创建另一个“deep”组

# useradd -g admin deep 

验证用户“deep”的组

# groups deep
 deep : admin

7. 将用户添加到不同的次要组

在上面的命令中,我们看到如果我们在使用 useradd 命令时提到不同的主要组,则不会创建名为 user 的默认组。
现在,如果我们希望创建一个带有用户名的组,但我们希望用户添加一些辅助组,该怎么办。

这里用户 jack 与组 jack 一起创建,但也在同一命令中我们将 jack 添加到 dba 组

# useradd  -G dba jack 

验证jack所在的组

# groups jack
 jack : jack dba

8.将用户添加到多个组

您可以使用单个命令将用户添加到多个辅助组

# useradd -G admin,dba jack 

验证

# groups jack
 jack : jack admin dba

9.手动为用户分配一个shell

默认情况下,当您在 Red Hat Linux 中创建用户时,用户会获得 /bin/bash shell。 但是如果你想给他们一些其他的 shell 来登录,请使用下面的命令

# useradd -s /bin/sh  jack 
# su - jack
-sh-4.1$echo $SHELL
 /bin/sh
 -sh-4.1$

10.创建用户和加密密码

现在我们可以使用预定义的密码创建用户,但条件是使用的密码应加密,我们可以使用各种方法进行加密。
这里将介绍一种方法

使用以下命令加密您的密码

# openssl passwd -crypt mypassw0rd
 Warning: truncating password to 8 characters
 TuUFdiN1KaCHQ 

现在您可以为新用户使用加密密码

# useradd -p TuUFdiN1KaCHQ jack 

尝试登录用户,其密码为“mypassw0rd”

日期:2020-06-02 22:18:43 来源:oir作者:oir