创建用户帐户后,在一些需要更改现有用户属性的场景中,例如更改用户的主目录、登录名、登录 shell、密码到期日期等,在这种情况下使用
usermod
命令。当我们在终端中执行
usermod
命令时,会使用和影响以下文件。
/etc/passwd
– 用户帐户信息。/etc/shadow
– 帐户密码信息。/etc/group
– 组帐户信息。/etc/gshadow
– 组密码信息。/etc/login.defs
– 是设置用户帐号限制的文件。该文件里的配置对root用户无效。命令的基本语法是
usermod [options] username
这
usermod
命令使用起来很简单,有很多选项可以对现有用户进行更改。让我们通过以下选项的帮助,通过修改 Linux box 中的一些现有用户来看看如何使用 usermod 命令。
-c
= 我们可以为用户帐户添加评论字段。-d
= 修改任何现有用户帐户的目录。-e
= 使用此选项,我们可以使帐户在特定时期到期。-g
= 更改用户的主要组。-G
= 添加补充组。-a
= 将组中的任何人添加到辅助组。-l
= 将登录名从 rumenz 更改为 rumenz_admin。-L
= 锁定用户帐户。这将锁定密码,因此我们无法使用该帐户。-m
= 将主目录的内容从现有主目录移动到新目录。-p
= 使用未加密的密码作为新密码。(不安全)。-s
= 为新帐户创建一个指定的 shell。-u
= 用于为 0 到 999 之间的用户帐户分配 UID。-U
= 解锁用户帐户。这将删除密码锁并允许我们使用用户帐户。
-c
选项用于设置关于用户帐户的简短备注。例如添加有关的信息rumenz
用户,使用以下命令。
# usermod -c "This is rumenz" rumenz
添加用户信息后,相同的评论可以在
/etc/passwd
文件。
# grep -E --color 'rumenz' /etc/passwd
rumenz:x:500:500:This is rumenz:/home/rumenz:/bin/sh
在上面的步骤中,我们可以看到我们的主目录在
/home/rumenz/
下,如果我们需要将其更改为其他目录,我们可以使用-d
选项和 usermod 命令来更改它。例如,我想将我们的主目录更改为
/var/www/
,但在更改之前,让我们使用以下命令检查用户的当前主目录。
# grep -E --color '/home/rumenz' /etc/passwd
rumenz:x:500:500:This is rumenz:/home/rumenz:/bin/sh
现在,将主目录从
/home/rumenz
到/var/www/
并在更改后确认主控制器。
# usermod -d /var/www/ rumenz
# grep -E --color '/var/www/' /etc/passwd
rumenz:x:500:500:This is rumenz:/var/www:/bin/sh
选项
-e
用于在具有日期格式的用户帐户上设置到期日期YYYY-MM-DD
.在为用户设置到期日期之前,让我们首先使用检查当前帐户的到期状态chage
(更改用户密码到期信息)命令。
# chage -l rumenz
Last password change : Nov 02, 2014
Password expires : never
Password inactive : never
Account expires : Dec 01, 2014
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
到期状态
rumenz
用户是2021 年 12 月 1 日
,将其更改为2021 年 11 月 1 日
usermod -e
选项并用确认到期日期chage
命令。
# usermod -e 2014-11-01 rumenz
# chage -l rumenz
Last password change : Nov 02, 2021
Password expires : never
Password inactive : never
Account expires : Nov 01, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
要设置或更改用户主要组,我们使用选项
-g
使用 usermod 命令。在更改用户主要组之前,首先确保检查用户rumenz_test
的当前组。
# id rumenz_test
uid=501(rumenz_test) gid=502(rumenz_test) groups=502(rumenz_test)
现在,将
babin
组设置为用户rumenz_test
的主要组并确认更改。
# usermod -g babin rumenz_test
# id rumenz_test
uid=501(rumenz_test) gid=502(babin) groups=502(rumenz_test)
如果您想添加一个名为
rumenz_test0
的新组到rumenz
用户,您可以使用选项-G
使用 usermod 命令,如下所示。
# usermod -G rumenz_test0 rumenz
# id rumenz
将组添加到用户
Note
: 在向现有用户添加新组时使用-G
单独选项,将删除用户所属的所有现有组。所以,总是添加-a
(附加)与-G
添加或追加新组的选项。
如果您需要将用户添加到任何一个补充组,您可以使用选项
-a
和-G
。例如,这里我们要添加一个用户帐户rumenz_test0
与wheel
用户。
# usermod -a -G wheel rumenz_test0
# id rumenz_test0
因此,用户
rumenz_test0
保留在其主要组和次要组中(wheel
)。这将使我的普通用户帐户在 Linux 框中执行任何 root 特权命令。
eg : sudo service httpd restart
要更改任何现有的用户登录名,我们可以使用
-l
(帐号名称)选项。在下面的示例中,我们更改登录名rumenz
到rumenz_admin
.所以用户名rumenz
已使用新名称重命名rumenz_admin
.
# usermod -l rumenz_admin rumenz
现在检查
rumenz
用户,它将不存在,因为我们已将其更改为rumenz_admin
.
# id rumenz
检查
rumenz_admin
帐户它将以相同的方式存在UID
以及我们之前添加的现有组。
# id rumenz_admin
要锁定任何系统用户帐户,我们可以使用
-L
(锁定)选项,帐户被锁定后我们无法使用密码登录,你将看到一个``在加密密码之前添加/etc/shadow
文件,表示禁用密码。
# usermod -L babin
检查锁定的帐户。
# grep -E --color 'babin' cat /etc/shadow
这
-U
选项用于解锁任何锁定的用户,这将删除!
在加密密码之前。
# grep -E --color 'babin' /etc/shadow
# usermod -U babin
解锁后验证用户。
# grep -E --color 'babin' /etc/shadow
解锁用户帐户
可以使用选项
-d
和-m
将现有用户文件从当前主目录移动到新的主目录。检查帐户及其当前主目录。
# grep -E --color 'pinky' /etc/passwd
然后列出用户拥有的文件。
# ls -l /home/pinky/
现在我们必须将主目录从
/home/pinky
到/var/pinky
.
# usermod -d /var/pinky/ -m pinky
接下来,验证目录更改。
# grep -E --color 'pinky' /etc/passwd
检查下的文件
/home/pinky
。在这里,我们使用了移动文件-m
选项,所以不会有文件。小指用户文件现在位于/var/pinky
.
# ls -l /home/pinky/
# ls -l /var/pinky/
移动用户主目录
要创建未加密的密码,我们使用选项
-p
(密码)。出于演示目的,我正在设置一个新密码,例如redhat
对用户pinky
.
# usermod -p redhat pinky
设置密码后,现在检查影子文件,看看它是加密格式还是未加密格式。
# grep -E --color 'pinky' /etc/shadow
用户登录shell可以在用户创建期间更改或定义
useradd
命令或更改为usermod
命令使用选项-s
(shell)。例如,用户babin
有/bin/bash
shell 默认情况下,现在我想将其更改为/bin/sh
.
# grep -E --color 'babin' /etc/passwd
# usermod -s /bin/sh babin
更改用户shell后,使用以下命令验证用户shell。
# grep -E --color 'babin' /etc/passwd
更改用户登录shell
在下面的示例中,您可以看到我的用户帐户
babin
持有的 UID502
,现在我想把它改成888
作为我的 UID。我们可以在之间分配 UID0
到999
.
# grep -E --color 'babin' /etc/passwd
OR
# id babin
现在,让我们更改用户的 UID
babin
使用-u
(uid) 选项并验证更改。
# usermod -u 888 babin
# id babin
更改用户 UID
这里我们有一个用户
rumenz
,现在我想使用一个带有我们上面讨论的所有选项的单个命令一次修改他的主目录、shell、到期日期、标签、UID 和组。用户
rumenz
的默认主目录为/home/rumenz
,现在我想将其更改为/var/www/html
并将其 shell 指定为bash
,将到期日期设置为 2021 年 12 月 10 日,添加新标签为This is rumenz
,更改 UID 到 555,改到deploy组。现在让我们看看如何使用多个选项修改 rumenz 帐户。
# usermod -d /var/www/html/ -s /bin/bash -e 2021-12-10 -c "This is rumenz" -u 555 -aG deploy rumenz
然后检查 UID 和主目录更改。
# grep -E --color 'rumenz' /etc/passwd
帐户过期检查。
# chage -l rumenz
检查所有 rumenz 都加入的组。
# grep -E --color 'rumenz' /etc/group
对 usermod 使用多个选项
我们可以更改当前用户的 UID 和 GID。要更改为新 GID,我们需要一个现有组。这里已经有一个名为
orange
的帐户,其 GID 为777
。现在,我的 rumenz 用户帐户要分配给
666 的
UID和 Orange (777
) 的GID。在修改之前检查当前的 UID 和 GID。
# id rumenz
修改 UID 和 GID。
# usermod -u 666 -g 777 rumenz
检查更改。
# id rumenz
相关文章