Linux中修改用户密码和账号属性主要依靠passwd和usermod命令:passwd用于密码管理(如改密、锁定、强制重设等),usermod用于调整账户属性(如组、Shell、过期时间等),均需root或sudo权限。

Linux 修改用户密码和账号属性主要靠 passwd 和 usermod 两个命令,普通用户只能改自己的密码,root 或有 sudo 权限的用户才能操作他人账户。
修改用户密码(passwd 命令)
passwd 是最直接、最常用的密码管理工具,支持交互式设置和策略配置:
- 普通用户改自己密码:直接运行
passwd,系统会提示输入当前密码,再输入新密码两次确认 - root 或管理员改他人密码:运行
sudo passwd username,无需旧密码,直接设置新密码 - 强制用户下次登录改密码:用
sudo passwd -e username,该账户登录时会立即跳转到密码重设流程 - 锁定/解锁账户:锁定用
sudo passwd -l username,解锁用sudo passwd -u username;锁定后用户无法登录,但 root 仍可操作其家目录 - 查看密码状态:运行
sudo passwd -S username,能显示是否锁定、上次修改时间、有效期、警告天数等关键信息
修改账号属性(usermod 命令)
usermod 用于调整用户账户的非密码类属性,比如组归属、登录 Shell、过期时间等,需 root 权限:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 修改主组:
sudo usermod -g groupname username - 添加附加组:
sudo usermod -G group1,group2 username(注意:不加-a会覆盖原有附加组,加-aG才是追加) - 更换默认 Shell:
sudo usermod -s /bin/zsh username - 设置账户过期日期:
sudo usermod -e "2026-12-31" username - 修改家目录路径(慎用):
sudo usermod -d /new/home -m username(-m表示迁移原内容)
密码策略与安全控制
仅设密码不够,还需配合策略防止弱口令或长期不更新:
- 限制密码最长使用期限:
sudo passwd -x 90 username(90 天后必须修改) - 设置最短使用天数:
sudo passwd -n 7 username(改完7天内不能再次修改) - 提前预警天数:
sudo passwd -w 14 username(到期前14天开始提醒) - 过期后宽限期:
sudo passwd -i 3 username(过期后3天内仍可登录,之后禁用) - 删除密码(慎用):
sudo passwd -d username会让该账户空密码登录,仅限封闭测试环境
注意事项与常见问题
操作前注意权限、路径和影响范围:
- 所有涉及他人账户的操作都必须有 root 或 sudo 权限,否则会提示 “Permission denied”
- 密码实际存储在
/etc/shadow,该文件只有 root 可读写,普通用户无法直接编辑 - 修改 root 密码需先以 root 身份登录,或用
sudo passwd root(当前用户需在 sudoers 中) - 若忘记所有密码,需进单用户模式或使用救援系统重置,不能通过常规命令恢复
- 批量处理建议配合脚本,例如用
--stdin配合 echo:echo "newpass" | sudo passwd --stdin username

















