)
Linux命令-usermod修改用户属性语法常用选项基础用法1. 修改 Shell 和主目录2. 管理组成员关系3. 锁定和解锁账号4. 修改用户名和 UID5. 综合修改脚本6. 常见问题与回滚usermod用于修改已存在用户账号的各项属性——Shell、主目录、组成员关系、UID、账号状态等。它是用户管理的核心工具之一与 useradd 和 userdel 形成完整的用户生命周期管理。⚠️需要 root 权限。修改正在登录用户的属性可能导致权限问题建议在用户离线时操作。语法usermod [选项] 用户名常用选项选项含义-s修改登录 Shell-d修改主目录需配合 -m 移动文件-m移动主目录内容到新位置-g修改主组-G设置附加组覆盖现有-aG追加附加组保留现有-l修改用户名-u修改 UID-L锁定账号禁用密码登录-U解锁账号-c修改注释/全名-e设置过期日期基础用法1. 修改 Shell 和主目录# 修改登录 Shellsudousermod-s/bin/bash alicegrepalice /etc/passwd# 修改主目录sudousermod-d/opt/data/alice-malice# -d 指定新路径-m 移动现有文件ls-la/opt/data/alice/# 仅改记录不移动文件不推荐sudousermod-d/new/path alice2. 管理组成员关系# ⚠️ -G 会覆盖所有附加组sudousermod-Gdockeralicegroupsalice# alice : alice docker# 如果之前 alice 还在 sudo 组现在被移除了# ✅ 使用 -aG 追加保留现有组sudousermod-aGdockeralicesudousermod-aGsudoalicegroupsalice# alice : alice docker sudo# 多次追加到不同组sudousermod-aGwww-data alicesudousermod-aGdevelopers alicegroupsalice# alice : alice docker sudo www-data developers# 或一次追加多个组sudousermod-aGdocker,sudo,www-data alice3. 锁定和解锁账号# 锁定账号在 /etc/shadow 密码前加 !sudousermod-Lalice# 验证锁定效果sudogrepalice /etc/shadow# alice:!$6$... : 密码字段前有 !# 解锁账号sudousermod-Ualice# 设置账号过期sudousermod-e2026-12-31 tempuser# 过期后用户无法登录# 检查状态sudochage-ltempuser4. 修改用户名和 UID# 修改用户名sudousermod-lnewname oldname# 仅修改用户名UID 和主目录不变# 同时修改用户名和主目录sudousermod-lnewname-d/home/newname-moldname# 修改 UIDsudousermod-u2000alice# 同时更新用户文件的所有权sudofind/home/alice-user$(id-ualice_old)-execchownalice{}\;# 查看修改后的信息idalicegrepalice /etc/passwd5. 综合修改脚本#!/bin/bash# 一站式用户配置调整modify_user(){localuser$1echo修改用户:$userecho1) 修改 Shellecho2) 添加附加组echo3) 锁定/解锁账号echo4) 修改主目录echo5) 显示当前信息read-p请选择 (1-5): choicecase$choicein1)read-p新 Shell 路径: newshellsudousermod-s$newshell$user;;2)read-p要添加的组 (逗号分隔): newgroupsIFS,read-ragroups_arr$newgroupsforgin${groups_arr[]};dosudousermod-aG$g$userecho已添加到组:$gdone;;3)read-p锁定(L)还是解锁(U)?: actionsudousermod-${action^^}$user;;4)read-p新主目录路径: newhomesudousermod-d$newhome-m$user;;5)id$usergroups$usersudochage-l$user;;esac}modify_useralice6. 常见问题与回滚# 问题1: -G 误操作覆盖了附加组# 恢复: 用 usermod -aG 逐个添加回失去的组sudousermod-aGsudoalicesudousermod-aGdockeralice# 问题2: 用户被锁定后无法登录# 如果 SSH 密钥仍能登录立即执行:sudousermod-Ualice# 问题3: 主目录迁移失败# -m 选项失败时文件可能留在原位置# 手动移动:sudomv/old/home/alice /new/home/alicesudousermod-d/new/home/alice alicesudochown-Ralice:alice /new/home/alice