"User modify" 的缩写,是一个用于修改现有用户账户属性的命令行工具。
该命令可以修改用户的主目录、默认shell、所属组、UID等属性,是系统管理员维护用户账户的重要命令,需谨慎操作以避免影响用户正常使用。
usermod [选项] <用户名>常用选项
-d <目录>:"home directory",修改用户的主目录路径,例如sudo usermod -d /newhome/john john将用户john的主目录改为/newhome/john(需手动创建目录)。-m:"move home directory",与-d配合使用,移动用户原主目录内容到新目录,例如sudo usermod -d /newhome/alice -m alice迁移alice的主目录并保留内容。-s <shell>:"shell",修改用户的默认登录shell,例如sudo usermod -s /bin/zsh bob将bob的默认shell从bash改为zsh。-g <组名/组ID>:"initial group",修改用户的主要组,例如sudo usermod -g developers charlie将charlie的主要组改为developers。-G <组1,组2,...>:"groups",设置用户的附加组(覆盖原有附加组),例如sudo usermod -G sudo,staff dave让dave仅属于sudo和staff附加组。-aG <组1,组2,...>:"append groups",向用户的附加组中添加新组(不覆盖原有),例如sudo usermod -aG dev eve为eve追加dev附加组(保留原有附加组)。-u <用户ID>:"UID",修改用户的UID(需确保UID未被占用),例如sudo usermod -u 1006 frank将frank的UID改为1006(可能需要手动修改文件权限)。-c <注释>:"comment",修改用户的注释信息(如全名、职位),例如sudo usermod -c "Frank Smith, DevOps" frank更新用户注释。-e <日期>:"expiration date",修改用户账户的过期日期(格式YYYY-MM-DD),例如sudo usermod -e 2026-01-01 temp_user延长临时用户的有效期。-L:"lock",锁定用户账户(禁止登录),例如sudo usermod -L grace锁定grace的账户,等效于passwd -l。-U:"unlock",解锁被锁定的用户账户,例如sudo usermod -U grace解锁grace的账户,等效于passwd -u。-l <新用户名>:"login name",修改用户名,例如sudo usermod -l johnny john将用户名john改为johnny(主目录和UID不变)。
参考示例
示例1:修改用户的默认shell 执行
sudo usermod -s /bin/bash sarah,将用户sarah的默认登录shell改为bash,适合用户切换偏好的命令行环境。示例2:迁移用户主目录并保留内容 执行
sudo usermod -d /data/users/mike -m mike,为mike创建新主目录/data/users/mike,并将原主目录内容迁移过去,适合调整存储路径。示例3:为用户添加管理员权限(附加组) 执行
sudo usermod -aG sudo tom,向tom的附加组中添加sudo组,使其获得管理员权限(需系统支持sudo组配置)。示例4:修改用户的主要组和附加组 执行
sudo usermod -g staff -G dev,test jerry,将jerry的主要组改为staff,附加组设为dev和test,适合调整用户的团队归属。示例5:修改用户名 执行
sudo usermod -l robert bob,将用户名bob改为robert,主目录、UID等属性保持不变,适合用户姓名变更的场景。示例6:延长临时用户的有效期 执行
sudo usermod -e 2025-12-31 temp_worker,将临时用户temp_worker的过期日期从原来的时间延长到2025年12月31日。示例7:锁定/解锁用户账户 执行
sudo usermod -L alice锁定alice的账户,禁止登录;需要解锁时执行sudo usermod -U alice,恢复登录权限。示例8:修改用户注释信息 执行
sudo usermod -c "Alice Wang, Senior Engineer" alice,更新alice在/etc/passwd中的注释信息,便于管理员识别用户身份。
注意:
修改正在登录的用户属性可能导致异常,建议先让用户退出登录再操作。
修改UID后,需手动更新该用户所有文件的所有者权限(可使用
chown -R 新UID:新GID /path),否则可能导致文件访问异常。使用
-G选项会覆盖原有附加组,添加附加组时建议使用-aG(-a表示追加)。