首页>教程>Linux 命令手册> 用户与权限管理 >Linux passwd 命令 - 修改用户密码 管理密码配置

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/passwdPAM 认证相关的配置文件,用于控制密码复杂度与验证规则

passwd 命令的退出状态码

passwd 执行后返回不同状态码,可用于脚本判断执行结果:

退出码含义
0执行成功
1执行权限不足,操作被拒绝
2选项的组合无效
3意外失败,密码文件缺失
4意外失败,未执行任何修改
5密码文件被占用,请稍后重试
6选项无效

结语

passwd 是 Linux / Unix 系统中用于管理账户密码信息的基础命令,熟练掌握该命令及时修改密码、强制修改密码等可以有效的保障用户密码的安全,降低系统被破解的风险。