200字
usermod
2025-10-10
2025-10-10

"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 bobbob 的默认shell从 bash 改为 zsh

  • -g <组名/组ID>:"initial group",修改用户的主要组,例如 sudo usermod -g developers charliecharlie 的主要组改为 developers

  • -G <组1,组2,...>:"groups",设置用户的附加组(覆盖原有附加组),例如 sudo usermod -G sudo,staff davedave 仅属于 sudostaff 附加组。

  • -aG <组1,组2,...>:"append groups",向用户的附加组中添加新组(不覆盖原有),例如 sudo usermod -aG dev eveeve 追加 dev 附加组(保留原有附加组)。

  • -u <用户ID>:"UID",修改用户的UID(需确保UID未被占用),例如 sudo usermod -u 1006 frankfrank 的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,附加组设为 devtest,适合调整用户的团队归属。

  • 示例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 中的注释信息,便于管理员识别用户身份。

注意

  1. 修改正在登录的用户属性可能导致异常,建议先让用户退出登录再操作。

  2. 修改UID后,需手动更新该用户所有文件的所有者权限(可使用 chown -R 新UID:新GID /path),否则可能导致文件访问异常。

  3. 使用 -G 选项会覆盖原有附加组,添加附加组时建议使用 -aG-a 表示追加)。


评论