在linux系统的日常管理和运维工作中,调整已有用户的相关属性是高频操作,比如修改用户的登录密码、调整用户所属的用户组、设置用户账号的有效期限、更换用户的家目录等。linux系统提供了一系列专用命令来处理不同维度的用户信息修改需求,不同命令对应不同的修改场景,掌握这些命令的使用方法能大幅提升系统管理效率。

修改用户基本属性的usermod命令
usermod是linux系统中用于修改用户基本属性的核心命令,支持调整用户的家目录、登录shell、所属组、用户ID等多个核心属性,使用时需要root权限。
常用参数说明
- -d:修改用户的家目录,配合-m参数可以同时将原家目录的内容迁移到新目录
- -g:修改用户的主用户组
- -G:修改用户的附加用户组,多个组之间用逗号分隔
- -s:修改用户的登录shell,比如设置为/bin/bash或者/sbin/nologin
- -u:修改用户的UID(用户ID)
- -l:修改用户的登录名
- -L:锁定用户账号,禁止用户登录
- -U:解锁被锁定的用户账号
操作示例
假设当前系统中存在一个名为testuser的用户,我们需要对其进行以下修改:
# 修改testuser的家目录为/home/new_testuser,同时迁移原家目录内容 usermod -d /home/new_testuser -m testuser # 修改testuser的主组为admin组 usermod -g admin testuser # 给testuser添加dev和ops两个附加组 usermod -G dev,ops testuser # 修改testuser的登录shell为/bin/bash usermod -s /bin/bash testuser # 修改testuser的登录名为newtestuser usermod -l newtestuser testuser # 锁定testuser账号 usermod -L testuser # 解锁testuser账号 usermod -U testuser
修改用户密码的passwd命令
passwd命令主要用于修改用户的登录密码,同时也可以用于锁定、解锁账号,普通用户只能修改自己的密码,root用户可以修改所有用户的密码。
常用参数说明
- -l:锁定用户密码,效果等同于usermod -L
- -u:解锁用户密码,效果等同于usermod -U
- -d:删除用户密码,用户登录时无需输入密码
- -e:设置用户密码立即过期,用户下次登录必须修改密码
操作示例
# root用户修改testuser的密码,执行后需要输入两次新密码 passwd testuser # 普通用户修改自己的密码,执行后需要先输入旧密码,再输入两次新密码 passwd # 锁定testuser的密码 passwd -l testuser # 解锁testuser的密码 passwd -u testuser # 删除testuser的密码 passwd -d testuser # 设置testuser的密码立即过期 passwd -e testuser
修改用户密码策略的chage命令
chage命令专门用于修改用户密码的过期策略,比如设置密码的最长使用天数、密码过期前的警告天数、账号的过期时间等,是管理用户账号生命周期的重要工具。
常用参数说明
- -l:查看用户的密码策略详情
- -M:设置密码的最长使用天数,超过该天数密码过期
- -m:设置密码的最短使用天数,在该天数内不能修改密码
- -W:设置密码过期前多少天开始警告用户
- -E:设置账号的过期日期,格式为YYYY-MM-DD,过期后账号无法登录
- -I:设置密码过期后多少天账号被锁定
操作示例
# 查看testuser的密码策略详情 chage -l testuser # 设置testuser的密码最长使用90天,最短使用7天,过期前5天警告 chage -M 90 -m 7 -W 5 testuser # 设置testuser的账号在2024-12-31过期 chage -E 2024-12-31 testuser # 设置testuser密码过期后3天锁定账号 chage -I 3 testuser # 设置testuser的密码策略为永不过期 chage -M 99999 testuser
操作注意事项
修改用户信息时需要注意以下几点,避免出现系统异常:
- 修改用户UID或者主组时,需要确保新的UID或者组ID没有被其他用户占用,否则会导致权限冲突
- 修改用户家目录时,如果使用了-m参数,需要确保新目录所在的磁盘有足够空间存放原家目录的内容
- 锁定用户账号或者密码后,用户将无法登录系统,执行解锁操作前需要确认解锁的必要性
- 修改用户附加组时,使用-G参数会覆盖原有的附加组配置,如果需要追加附加组,可以配合-a参数使用,比如
usermod -aG dev testuser - 所有修改用户信息的操作建议提前做好配置备份,避免误操作后无法恢复
验证修改结果
修改用户信息后,可以通过以下方式验证修改是否生效:
- 查看用户基本信息:
id 用户名,可以查看用户的UID、GID和所属组信息 - 查看用户密码策略:
chage -l 用户名,确认密码相关策略是否修改成功 - 查看用户详情:
grep 用户名 /etc/passwd,可以查看用户的家目录、登录shell等基础配置 - 查看用户组配置:
grep 用户名 /etc/group,可以确认用户的附加组配置是否正确
# 验证testuser的修改结果 id testuser chage -l testuser grep testuser /etc/passwd grep testuser /etc/group
linuxuser_modifychageusermodpasswd修改时间:2026-06-12 01:21:22