介绍
usermod
命令是系统管理员可用于用户管理的多个 Linux 命令之一。它用于修改现有的用户帐户详细信息,例如用户名、密码、主目录位置、默认 shell 等。
在本教程中,您将学习如何在 Linux 中使用 usermod
命令来更改用户登录信息。
先决条件
-
运行 Linux 的系统
-
访问命令行
usermod Linux Syntax
usermod
命令的基本语法是:
usermod [options] [username]
usermod
命令修改包含用户帐户信息的配置文件。这些文件是:
-
/etc/passwd
– 有关用户帐户的信息 -
/etc/shadow
– 与用户安全相关的信息 -
/etc/组
– 有关组的信息 -
/etc/gshadow
– 组安全相关信息 -
/etc/login.defs
– 影子密码套件配置
可以使用nano或vim等文本编辑器直接编辑上述文件。但是, usermod
使该过程更快,更直接。
用户模式命令示例
下面是 usermod
选项的列表,以及特定于选项的语法和示例。
向用户添加信息
将 usermod
与 -c
选项结合使用,可以将有关用户的一段信息添加到 /etc/passwd
文件中。这有助于识别用户,并为与用户相关的临时注释提供空间。
sudo usermod -c "[information]" [username]
使用 getent
命令检查 /etc/passwd
文件中与用户相关的条目。
该条目现在包含使用 usermod
添加的注释。
设置用户的主目录
当您在 Linux 中创建用户时,系统会自动在 /home/[username]
中为他们创建一个主文件夹。要更改用户个人文件夹的位置,请使用 -d
选项:
sudo usermod -d [directory-location] [username]
上面的示例将用户的个人文件夹从 /home/mike
更改为 /var/mike
。 getent
命令确认更改成功。
-d
选项不会将个人文件夹的内容移动到新位置。如果用户以前使用主文件夹来存储其文件,请添加 -m
选项以移动用户主目录的内容:
sudo usermod -d [location] -m [username]
对于上面示例中的用户,该命令如下所示:
sudo usermod -d /var/mike -m mike
**
注意:不能使用 usermod
更改当前登录用户的名称。此外,在更改用户的 ID (UID) 时,请确保用户当前未执行任何进程。
设置用户帐户到期日期
默认情况下,用户帐户在 Linux 中不会过期。使用 chage -l
命令检查用户的帐户账龄信息:
sudo chage -l [username]
如上面的示例所示,帐户设置为不过期。通过使用带有 -e
选项 的 usermod
来更改此设置。它允许您指定帐户到期的年、月和日期:
sudo usermod -e [YYYY-MM-DD] [username]
通过再次使用 chage -l
命令检查帐户来确认更改是否成功:
设置用户的外壳程序
使用 usermod -s
更改单个用户的默认 shell:
sudo usermod -s [shell] [username]
如果更改成功, getent
将在条目末尾显示新的默认 shell。
更改用户的 UID
UID(用户标识符)是在使用 useradd 命令创建帐户时分配给 用户的唯一
编号。 /etc/login.defs
文件定义 UID 值的范围。使用 usermod -u
命令更改用户的 UID:
sudo usermod -u [new-UID] [username]
在 passwd
条目中,找到紧跟在用户名和密码后面的 UID:
更改用户的登录名
通过添加 -l
选项更改用户名。语法如下:
sudo usermod -l [newname] [oldname]
如上面的示例所示,使用旧用户名检查 /etc/passwd
文件不再返回数据。但是,现在在新名称下可以使用相同的数据。
**
注意:** NAME_REGEX
/etc/adduser.conf
文件中的值定义了创建新用户名的标准。但是, usermod
不会强制执行相同的标准来修改用户名。虽然任何字符串都可以作为 usermod -l
** 的新用户名,但仍建议遵守标准命名约定。
锁定和解锁用户
使用 -L
选项锁定用户帐户。
sudo usermod -L [username]
使用 -L
锁定帐户后,用户的登录尝试在键入密码时将失败:
要解锁之前锁定的帐户,请键入 usermod -U
,后跟帐户名称:
sudo usermod -U [username]
正如您在上面的示例中看到的,密码现在再次起作用,并且 zsh shell 将启动。
为用户设置密码
为用户设置密码的最常见方法是使用 passwd 命令。 usermod
还具有用于创建密码的专用 -p
选项:
sudo usermod -p [password] [username]
但是,不建议使用此创建密码的方法,因为密码在 /etc/shadow
文件中可见。如果使用 grep 命令在 /etc/shadow
文件中查找用户名,则该条目将包含使用 usermod
创建的密码的纯文本版本:
更改用户的主要组
使用 usermod -g 更改用户
的主要组:
sudo usermod -g [group] [username]
id
命令确认主组的成功更改:
将用户添加到补充组
除了其主要组之外,用户还可以是任意数量的补充组的成员。 -G
选项将用户添加到补充组:
sudo usermod -G [group] [username]
但是,如果用户已经属于某些补充组, 则 usermod -G
会从这些组中删除这些组,并仅添加到命令之后指定的组。
在下面的示例中,用户已经是补充组的成员。 -a
和 -G
选项的组合将用户添加到指定的组,并将他们保留在它们已经是其成员的补充组中。
sudo usermod -a -G [group] [username]
使用多个选项更改用户帐户
在一个命令中使用多个选项,以便更方便地编辑用户。下面的示例显示了一个 usermod
命令, 该命令:
-
更改主文件夹和外壳程序,
-
设置帐户到期日期,
-
添加注释,
-
更改 UID,以及
-
将用户添加到补充组。
sudo usermod -d [home-folder] -s [shell] -e [YYYY-MM-DD] -c "[comment]" -u [UID] -aG [group] [username]
显示所有用户模式命令和参数
要阅读 usermod
帮助,请使用 --help
参数:
usermod --help
有关选项和函数的更详细列表,请使用 man 命令:
man usermod
结论
本指南解释了 usermod
命令的使用及其众多选项。阅读后,您应该知道如何使用该命令修改用户帐户设置和登录信息。