069 passwd命令

命令说明

passwd 用于设置和修改用户密码,root 可改任何人密码、普通用户只能改自己的;同时提供锁定、过期策略查询等账号密码生命周期管理功能。

语法

passwd [选项]... [用户名]

常用参数

参数说明
(无参数)交互式修改当前用户密码
用户名root 为指定用户改密:passwd zhangsan
-l锁定账号密码(root)
-u解锁账号(root)
-d清空密码(root,账号变免密,危险)
-e强制下次登录立即改密码
-S查看账号密码状态:PS 可用 / LK 锁定 / NP 无密码
-n / -x / -w设置最小使用天数 / 最大有效天数 / 提前警告天数
--stdin从标准输入读密码,脚本批量设密用

使用示例

$ passwd

修改自己的密码(旧密码+新密码两遍)

$ passwd zhangsan

root 直接为用户重置密码(无需旧密码)

$ passwd -S root

查看 root 密码状态

$ passwd -l guest

临时锁定 guest 账号

$ passwd -e zhangsan

让用户下次登录必须换密码(交付初始账号后常用)

$ echo "newpass" | passwd --stdin zhangsan

RHEL 系脚本非交互设密

$ echo "zhangsan:pass" | chpasswd

跨发行版批量设密(配合文件 chpasswd < users.txt)

$ passwd -x 90 -w 7 zhangsan

密码 90 天过期、提前 7 天警告

$ chage -l zhangsan

查看密码过期策略详情

实用技巧

  • 普通用户改密要验旧密码,root 改任何人密码都不需要旧密码——这是 passwd 权限模型的核心。
  • passwd -l 与 usermod -L 效果类似(shadow 前加 !),但 passwd -u 解锁后若密码本身是空可能直接免密,操作前 passwd -S 确认状态。
  • 批量建号标准姿势:useradd 用户 && echo "用户:密码" | chpasswd,避免交互式卡住脚本。
  • 密码复杂度由 PAM 控制(pam_pwquality),报 BAD PASSWORD 是策略拦截,不是命令出错;调试期可临时放宽 /etc/security/pwquality.conf。
  • 密码过期管理看 /etc/login.defs 默认值与 chage 命令;chage -d 0 用户 可强制立即过期改密。
  • 生产环境谨慎 passwd -d:空密码 + PermitEmptyPasswords 组合等于后门,sshd 默认禁止空密码登录。