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 账户

weimz@mzstudio:~$ sudo usermod -U li4
[sudo: authenticate] 密码:              
weimz@mzstudio:~$ sudo usermod -U li4  # 解锁

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

weimz@mzstudio:~$ sudo usermod -s /bin/sh li4
[sudo: authenticate] 密码:              
weimz@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中(保留原组)

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

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

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

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

练习:

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