一、基础属性修改
**-c <备注>**
功能:修改用户备注信息(存储在 /etc/passwd 的 GECOS 字段)
示例:
bash
sudo usermod -c “运维工程师” admin # 添加备注1,3,6
**-d <主目录路径>**
功能:修改用户主目录路径(需配合 -m 移动原目录)
示例:
bash
sudo usermod -d /data/projects -m user1 # 主目录改为 /data/projects 并移动内容1,3,4
**-e <过期日期>**
功能:设置账户失效日期(格式 YYYY-MM-DD)
示例:
bash
sudo usermod -e “2025-12-31” tempuser # 账户2025年底失效1,3,6
**-f <天数>**
功能:设置密码过期后禁用账户的天数(0 立即禁用,-1 关闭)
示例:
bash
sudo usermod -f 7 user2 # 密码过期7天后禁用账户1,3,6
二、用户与组管理
**-g <组名/ID>**
功能:修改用户初始主组(需组已存在)
示例:
bash
sudo usermod -g developers user6 # 主组改为 developers1,3,6
**-G <附加组列表>**
功能:添加用户到多个附加组(用逗号分隔)
示例:
bash
sudo usermod -G admins,dba user7 # 添加到 admins 和 dba 组1,3,6
**-l <新用户名>**
功能:修改用户名(需确保新用户名唯一)
示例:
bash
sudo usermod -l newuser olduser # 用户名改为 newuser1,3,6
三、UID与系统账户
**-u **
功能:指定用户UID(需唯一且非负)
示例:
bash
sudo usermod -u 1008 user9 # UID设为10081,3,6
**-o / --non-unique**
功能:允许创建重复UID的用户(需谨慎)
示例:
bash
sudo usermod -o -u 1000 user10 # 允许UID重复3,6
**-r / --system**
功能:创建系统账户(UID < 1000,无主目录)
示例:
bash
sudo usermod -r systemuser # 创建系统账户3,6
四、Shell与登录控制
**-s <Shell路径>**
功能:修改用户默认登录Shell(如 /bin/bash 或 /sbin/nologin)
示例:
bash
sudo usermod -s /sbin/nologin user11 # 禁止登录1,3,6
**-L / --lock**
功能:锁定用户密码(禁止登录)
示例:
bash
sudo usermod -L username # 锁定账户1,3,6
**-U / --unlock**
功能:解除密码锁定
示例:
bash
sudo usermod -U username # 解锁账户1,3,6
五、其他高级选项
**-a / --append**
功能:向附加组追加用户(需与 -G 配合使用)
示例:
bash
sudo usermod -aG group1 user7 # 仅追加到 group13,5
**-b <基目录>**
功能:设置用户主目录的基路径(如 /export/home)
示例:
bash
sudo usermod -b /export/home user12 # 主目录基路径为 /export/home3,6
**-K / --key**
功能:修改 PAM 配置(需谨慎)
示例:
bash
sudo usermod -K key=value username # 修改 PAM 配置项3
关键输出字段解析
字段 含义 适用场景
UID 用户唯一标识符(需唯一) 账户管理
GID 主组标识符 组权限控制
Shell 登录后使用的命令解释器(如 /bin/bash) 账户登录配置
Home Dir 用户主目录路径 文件系统管理
Expire Date 账户失效日期(/etc/shadow 中记录) 临时账户管理
注意事项
权限要求:需 root 或管理员权限执行
系统差异:不同Linux发行版默认配置可能不同(如 /etc/skel 路径)
数据一致性:修改主目录时需确保新路径存在且可写
密码安全:锁定账户后需通过 passwd 解锁
完整手册可通过 man usermod 查看,或参考系统网页如 /etc/login.defs。