5. usermod 命令

usermod 是 用于修改用户属性信息的命令,由 root 或具有 sudo 权限的用户执行。它可以调整用户的用户名、主目录、用户组、登录 Shell 等多种属性。

命令格式

usermod [选项] [用户名]

如果不给出用户名,默认是更改自己属性信息。

常用选项

选项
说明
-s <Shell路径>
修改用户的默认 Shell(如:usermod -s /bin/bash li4
-l <新用户名>
修改用户名(如:usermod -l newuser olduser
-d <新主目录>
修改用户主目录(需配合 -m 移动文件)
-m
将旧主目录内容移动到新目录(与 -d 联用)
-g <主组>
修改用户的主组(如:usermod -g developer li4
-G <附加组>
修改用户的附加组(覆盖原有附加组,用逗号分隔)
-aG <附加组>
追加附加组(不覆盖原有组,常与 -G 联用)
-L
锁定用户账户(禁用登录)
-U
解锁用户账户
-e <YYYY-MM-DD>
设置账户过期时间(如:usermod -e 2025-5-23 li4
-u <UID>
修改用户 UID(需确保唯一性)

示例

锁定/解锁 li4 账户

weimingze@mzstudio:~$ sudo usermod -L li4  # 锁定
[sudo] password for weimingze:
weimingze@mzstudio:~$ sudo usermod -U li4  # 解锁

修改 li4 账户的默认 Shell 为 /bin/sh

weimingze@mzstudio:~$ sudo usermod -s /bin/sh li4
[sudo] password for weimingze:
weimingze@mzstudio:~$ tail -2 /etc/passwd
zhang3:x:1001:1002::/home/zhang3:/bin/sh
li4:x:1002:1001:develop_lisi:/home/lisi:/bin/sh

将用户添加到附加组:adm,sudo,users,lpadmin中(保留原组)

weimingze@mzstudio:~$ groups
weimingze adm cdrom sudo dip plugdev users lpadmin
weimingze@mzstudio:~$ sudo groups li4
li4 : develop
weimingze@mzstudio:~$ sudo usermod -aG adm,sudo,users,lpadmin li4
weimingze@mzstudio:~$ sudo groups li4
li4 : develop adm sudo users lpadmin
weimingze@mzstudio:~$ grep "li4" /etc/group
adm:x:4:syslog,weimingze,li4
sudo:x:27:weimingze,li4
users:x:100:weimingze,li4
lpadmin:x:114:weimingze,li4

可见 li4 用户已经加入了组:adm,sudo,users,lpadmin 中。

删除上述添加的所有的组。

weimingze@mzstudio:~$ sudo groups li4
li4 : develop adm sudo users lpadmin
weimingze@mzstudio:~$ sudo usermod -G "" li4
weimingze@mzstudio:~$ sudo groups li4
li4 : develop
weimingze@mzstudio:~$ grep "li4" /etc/group
weimingze@mzstudio:~$

练习:

  1. 创建一个用户 test。要求:创建用户主文件为 /home/test,指定登陆Shell 为 /bin/sh
  2. test 用户添加附加组 sudoadm
  3. 修改 test 用户的 Shell 为 /bin/bash
  4. 修改 test 用户的密码为 Linux666
  5. 注销当前用户,使用 test 重新登陆。