当使用 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”