目录
1、作用
passwd命令主要用于设置或更改用户密码,还可以对用户账户进行封锁解封等操作。
passwd命令设置的用户密码和密码相关信息都存储在 /etc/shadow 文件。
2、命令使用格式
passwd [options] [name]
- options:参数(可选)。不带参数时,命令的功能就是设置或更改用户密码;带参数时,根据参数的不同,命令功能不同,详见参数说明。
- name:用户名(可选)。不带参数时,用户名可以省略,默认是当前用户;带参数时,用户名必须指定。
注:普通用户只能设置或更改自身的密码;root用户或有sudo权限的用户才可以设置或更改其他用户密码。
3、常用参数说明
- -d:删除用户密码。
- -l:锁定用户,使其无法登录。
- -u:解锁用户,使其恢复登录。
- -x <天数>:设置用户密码的有效时限。
- -w <天数>:设置在密码过期前多少天开始提醒用户。
- -i <天数>:设置密码过期后经过多少天账户会被禁用。
- -S:显示用户密码状态相关信息。
注:上述参数都只有root用户或有sudo权限的用户才可使用。
-S参数显示内容的格式如下:
用户名 密码状态 上次修改日期 最小修改时间间隔 密码有效期 警告期 不活跃期
- 用户名:所查询密码状态的用户账户名称。
- 密码状态:它有多种可能的值,常见的有:
- 上次修改日期:这个日期表示用户密码最后一次被修改的时间。
- 最小修改时间间隔:这是指密码修改后,需要等待多少天才能再次修改密码。设置这个值是为了防止用户频繁修改密码,可能会干扰正常的系统使用或者是出于安全策略考虑。如果这个值为 0,表示没有限制,用户可以随时修改密码。
- 密码有效期:从上次修改日期开始计算,经过这个天数后,密码就会过期,用户需要修改密码才能继续正常登录。未设置有效期的密码,有效期往往取成99999,也就是 273 年,可认为密码永不过期。
- 密码警告期:该值表示当密码距离过期还有这么多天时,系统会开始向用户发出警告,提醒用户密码即将过期,需要尽快修改。这是一种友好的提醒机制,帮助用户避免因为密码过期而无法登录系统。
- 密码宽限期:该值表示密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,账户被禁用。如果值是 0,则代表密码过期后账户立即禁用;如果值是 -1,则代表密码永远不会过期。
4、示例
4.1 更改密码
4.2 显示用户密码状态信息
5、/etc/shadow文件说明
由于/etc/passwd文件允许所有用户读取,易导致密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,单独放到了 /etc/shadow 中。该文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
/etc/shadow文件每一行对应一个用户。每行有9个字段,使用冒号(:)隔开。各字段顺序如下:
用户名:加密密码:密码最后一次修改时间:密码最小修改时间间隔:密码有效期:密码警告期:密码宽限期:账号有效期:保留字段