Linux passwd 命令 - 修改用户密码 管理密码配置
passwd (全称为 password)命令是 Linux、Unix 系统中用于修改用户密码、管理密码的有效期、锁定 / 解锁账户、清空密码等与账户安全管理相关的一款命令,普通用户使用该命令只能修改自身密码,root 用户可以使用其全部的功能。
相似功能命令对比
chage: 主要用于管理密码过期时间。vipw: 直接编辑与密码相关的对应的配置文件,不推荐新手使用。
passwd 命令语法结构
passwd 命令的语法结构简单易懂,具体形式为:
passwd [选项] [用户名]
语法结构各部分的解释说明:
[选项]:可选的内容,用于指定锁定、解锁、过期、查看状态等具体的行为。[用户名]:可选的内容,指定需要修改的用户;当不指定用户名时则修改当前登录用户的密码。
passwd 命令使用示例
passwd 命令用于修改用户的密码,管理密码信息,其使用示例如下:
修改当前用户密码
不使用任何的选项、同时不指定用户名,执行命令会修改当前登录用户的密码:
passwd
修改密码时:先输入当前使用的密码,然后输入新密码,再输入一次新密码确认。
修改指定用户的密码
指定用户名,修改指定用户的密码:
sudo passwd testuser
锁定用户的密码
使用 -l 或 --lock 选项锁定指定用户的密码:
sudo passwd -l testuser
[!NOTE]
锁定用户的密码后,禁止该用户使用密码登录,但是可以使用 SSH 密钥登录。
解锁用户的密码
使用 -u 或 --unlock 选项解锁指定用户锁定的密码:
sudo passwd -u testuser
清空用户的密码(无密码登录)
使用 -d 或 --delete 选项清空用户的密码:
sudo passwd -d testuser
[!NOTE]
清空密码后,可以实现无密码登录。
强制用户下次登录时修改密码
使用 -e 或 --expire 选项设置密码登录后立即过期,即登录后需要修改密码:
passwd -e testuser
passwd 命令选项详解
passwd 命令专用于密码管理,它提供了很多的选项用于执行不同的操作,如下给出所有选项的详细解释说明:
| 选项 | 功能说明 |
|---|---|
-a, --all | 只能与 -S 选项配合在一起使用,用于显示所有用户的密码状态 |
-d, --delete | 删除用户的密码,用户可以不用密码登录 |
-e, --expire | 设置密码登录后立即过期,强制用户下次登录后修改密码 |
-h, --help | 显示帮助信息并退出 |
-i, --inactive INACTIVE | 密码过期超过 INACTIVE 指定的天数后,禁用此账户登录系统 |
-k, --keep-tokens | 只修改已过期的认证令牌 |
-l, --lock | 锁定用户的密码,锁定密码后,在配置文件中的密码部分会标记 !,表示处于禁用状态) |
-n, --mindays MIN_DAYS | 设置需要修改密码的最小间隔天数 |
-q, --quiet | 启用静默模式,减少输出的信息 |
-r, --repository REPOSITORY | 在指定 REPOSITORY 中修改密码 |
-R, --root CHROOT_DIR | 在指定的 CHROOT_DIR 目录中以 chroot 环境中执行命令 |
-P, --prefix PREFIX_DIR | 在指定的PREFIX_DIR 目录下执行操作,使用该目录下的配置文件,不执行chroot操作 |
-S, --status | 显示用户的密码状态信息 |
-u, --unlock | 解锁被锁定的用户的密码 |
-w, --warndays WARN_DAYS | 密码过期前多少天提示用户密码的过期信息 |
-x, --maxdays MAX_DAYS | 设置密码的最大有效天数,值为 -1 时,取消最大天数的限制 |
-s, --stdin | 从标准输入读取新密码 |
相关配置文件解释说明
passwd 命令的所有操作的结果都会写入相应的配置文件,如下是与 passwd 命令相关的配置文件:
| 文件路径 | 说明 |
|---|---|
/etc/passwd | 存储用户账户的基本信息,密码位使用 x 占位符来表示 |
/etc/shadow | 存储加密后的密码、密码的过期时间、锁定状态等需要进行安全管理的信息 |
/etc/pam.d/passwd | PAM 认证相关的配置文件,用于控制密码复杂度与验证规则 |
passwd 命令的退出状态码
passwd 执行后返回不同状态码,可用于脚本判断执行结果:
| 退出码 | 含义 |
|---|---|
| 0 | 执行成功 |
| 1 | 执行权限不足,操作被拒绝 |
| 2 | 选项的组合无效 |
| 3 | 意外失败,密码文件缺失 |
| 4 | 意外失败,未执行任何修改 |
| 5 | 密码文件被占用,请稍后重试 |
| 6 | 选项无效 |
结语
passwd 是 Linux / Unix 系统中用于管理账户密码信息的基础命令,熟练掌握该命令及时修改密码、强制修改密码等可以有效的保障用户密码的安全,降低系统被破解的风险。