Linux 中的 usermod 命令
usermod是一个命令行实用程序,允许您修改用户的登录信息。本文介绍如何使用该usermod命令将用户添加到组、更改用户 shell、登录名、主目录等。usermod命令usermod命令的语法采用以下形式:usermod [options] USER只有 root 或具有sudo访问权限的用户才能调用usermod和修改用户帐户。成功后,该命令不会显示任何输出。将用户添加到组最典型的用例use
usermod
是一个命令行实用程序,允许您修改用户的登录信息。本文介绍如何使用该usermod
命令将用户添加到组、更改用户 shell、登录名、主目录等。
usermod
命令
usermod
命令的语法采用以下形式:
usermod [options] USER
只有 root 或具有sudo 访问权限的用户才能调用usermod
和修改用户帐户。成功后,该命令不会显示任何输出。
将用户添加到组
最典型的用例usermod
是将用户添加到组中。
要将现有用户添加到辅助组,请使用-a -G
组名和用户名后面的选项:
usermod -a -G GROUP USER
如果您想一次将用户添加到多个组,请在-G
选项后指定组,用,
(逗号)分隔,中间没有空格。
例如,要将用户添加linuxize
到games
组,您将运行以下命令:
sudo usermod -a -G games linuxize
-a
将用户添加到新组时,请始终使用(append) 选项。如果省略该-a
选项,则用户将从-G
选项后未列出的组中删除。
如果用户或组不存在,该命令将警告您。
更改用户主要组
要更改用户的主要组,请usermod
使用-g
后跟组名称和用户名的选项调用命令:
sudo usermod -g GROUP USER
在以下示例中,我们将用户的主要组更改linuxize
为developers
:
usermod -g developers linuxize
每个用户只能属于一个主要组和零个或多个次要组。
更改用户信息
要更改 GECOS(用户的全名)信息,请使用-c
后跟新注释和用户名的选项运行命令:
usermod -c "GECOS Comment" USER
这是一个示例,显示如何向用户 linuxize 添加附加信息:
usermod -c "Test User" linuxize
此信息存储在/etc/passwd 文件中。
更改用户主目录
在大多数 Linux 系统上,用户主目录以用户名命名并在该/home
目录下创建。
如果出于某种原因,您想更改用户的主目录,请调用该usermod
命令,-d
其后跟新主目录的绝对路径和用户名的选项:
usermod -d HOME_DIR USER
默认情况下,该命令不会将用户主目录的内容移动到新目录。要移动内容,请使用该-m
选项。如果新目录不存在,则创建它:
usermod -d HOME_DIR -m USER
这是一个示例,显示如何将用户的主目录更改www-data
为/var/www
:
usermod -d /var/www www-data
更改用户默认 Shell
默认shell是登录系统后运行的shell。默认情况下,在大多数 Linux 系统上,默认 shell 设置为 Bash Shell。
要更改用户的默认 shell,请运行带有-s
选项的命令,后跟 shell 的绝对路径和用户名:
usermod -s SHELL USER
在下面的示例中,我们将用户 shell 更改为 Zsh:
sudo usermod -s /usr/bin/zsh linuxize
您可以通过显示/etc/shells
文件的内容来找出系统上可用的 shell 。
更改用户 UID
UID(用户标识符)是分配给每个用户的编号。操作系统使用它来指代用户。
要更改用户 UID,请使用-u
后跟新 UID 和用户名的选项调用命令:
usermod -u UID USER
下面的示例显示了如何将“UID”编号更改为“1050”:
sudo usermod -u 1050 linuxize
用户拥有的位于用户家目录下的文件的UID,用户的邮箱文件会自动更改。所有其他文件的所有权必须手动更改。
更改用户名
尽管不是很频繁,但有时您可能想要更改现有用户的名称。该-l
选项用于更改用户名:
usermod -l NEW_USER USER
在下面的例子中,我们要重命名的用户linuxize
来lisa
为“1050”:
sudo usermod -l linuxize lisa
更改用户名时,您可能还想更改用户的主目录以反映新用户名。
设置用户到期日期
到期日期是用户帐户将被禁用的日期。要设置用户的到期日期,请使用以下-e
选项:
sudo usermod -e DATE USER
必须使用格式设置到期日期YYYY-MM-DD
。
例如,要禁用用户linuxize
on 2022-02-21
,您将运行以下命令:
sudo usermod -e "2022-02-21" linuxize
要禁用帐户到期,请设置一个空的到期日期:
sudo usermod -e "" linuxize
使用chage -l
命令查看用户的有效期:
sudo chage -l linuxize
Last password change : Jul 24, 2018
Password expires : never
Password inactive : never
Account expires : never
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
复制
到期日期存储在/etc/shadow 文件中。
锁定和解锁用户帐户
该-L
选项允许您锁定用户帐户:
usermod -L USER
这些命令将!
在加密密码前插入一个感叹号 ( )。当/etc/shadow
文件中的密码字段包含感叹号时,用户将无法使用密码认证登录系统。 仍然允许其他登录方法,例如基于密钥的身份验证 或切换到用户。如果您想锁定帐户并禁用所有登录方式,您还需要将到期日期设置为 1。
以下示例显示了如何锁定用户linuxize
:
sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize
要解锁用户,请usermod
使用以下-U
选项运行:
usermod -U USER
结论
我们已经向您展示了如何使用该usermod
命令来设置用户帐户信息。
更多推荐
所有评论(0)