顾名思义,passwd 命令在 linux 下用于修改系统用户的密码。如果 passwd 命令是由非 root 用户执行的,那么它将提示输入当前密码,然后允许为调用该命令的用户设置新密码。当超级用户或 root 用户执行此命令时,可以重置包括 root 用户在内的任何用户的密码,而不需要知道当前密码。

当我们运行 passwd 命令设置用户密码时,加密的密码字符串保存在 /etc /shadow 文件中。

基本语法如下 :

# passwd {options} {user_name}

命令选项如下:

passwd-command-options

(1) 更改系统用户的密码

当用非 root 用户登录时,运行 passwd 命令,它会重置登录用户的密码。

[linuxtechi@linuxworld ~]$ passwd
Changing password for user linuxtechi.
Changing password for linuxtechi.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[linuxtechi@linuxworld ~]$

当用 root 用户登录并运行 passwd 命令时,它将重置 root 用户的密码,如果在 passwd 命令后指定了 user-name,则它将更改该用户的密码。

[root@linuxworld ~]# passwd
[root@linuxworld ~]# passwd linuxtechi

passwd-command

注意: 普通用户也可以修改 root 和用户的密码,前提是该用户具有 sudo 权限。假设 sysops 是 sudo 特权用户,要修改其他用户和 root 用户的密码,在 passwd 命令前输入 sudo,示例如下:

$ sudo password root   // this will change the root password
$ sudo password linuxtechi   //this will change the password of linuxtechi

(2) 显示用户状态信息

要显示用户状态信息,可以使用 -s 选项。用户的状态信息包括七个字段,如下所示:

[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@linuxworld ~]#

在上面的输出中,第一个字段显示用户名,第二个字段显示密码状态 ( PS = Password Set , LK = Password locked , NP = No Password), 第三个字段显示密码被更改的时间,最后和第四个字段显示密码的最小有效期、最大有效期、警告期和不活动期。

(3) 显示所有用户的信息

在 passwd 命令中使用 -aS 选项显示所有用户信息,示例如下:

root@localhost:~# passwd -Sa

passwd-sa

(4) 删除用户的密码

通过 passwd 命令删除用户的删除密码,请使用 -d 选项,示例如下:

[root@linuxworld ~]# passwd -d linuxtechi
Removing password for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi NP 2015-09-20 0 99999 7 -1 (Empty password.)
[root@linuxworld ~]#

因此,我们可以说 -d 选项将使用户的密码为空,并将禁用帐户。

(5)设置用户密码立即过期

在 passwd 命令中使用 -e 选项可使用户密码立即过期,强制用户下次登录时修改密码。

[root@linuxworld ~]# passwd -e linuxtechi
Expiring password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 1970-01-01 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@linuxworld ~]#

现在尝试使用 linuxtechi 用户 ssh 远程登录

passwd-expiry

(6) 锁定用户密码

-l 选项用于锁定用户的密码,当用户处于锁定状态时,用户无法更改其密码。

[root@linuxworld ~]# passwd -l linuxtechi
Locking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi LK 2015-09-20 0 99999 7 -1 (Password locked.)
[root@linuxworld ~]#

(7) 解锁用户密码

-u 选项用于解锁用户的密码,示例如下:

[root@linuxworld ~]# passwd -u linuxtechi
Unlocking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]#

(8) 设置密码过期之后的不活动天数

-i 选项用于设置账户过期之后的不活动天数。当一个用户的密码过期,并且用户在 n 天内没有更改密码时,那么用户将无法登录,其帐户将被禁用。

[root@linuxworld ~]# passwd -i 10 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 0 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#

(9) 设置修改用户密码的最短天数

可以在 passwd 命令中使用 -n 命令强制系统用户在 n 天内修改密码。

在下例中,linuxtechi 用户必须在 90 天内更改密码,值为 0 表示用户可以随时更改密码。

[root@linuxworld ~]# passwd -n 90 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#

(10) 设置用户密码过期警告天数

可以在 passwd 命令中使用 -w 选项为用户设置密码过期警告天数。

假设我们要为用户 linuxtechi 密码到期前设置12个警告日,示例如下:

[root@linuxworld ~]# passwd -w 12 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 12 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#

以上就是本文的全部内容,如有任何疑问,请在下面的评论区留下评论。

我的开源项目

酷瓜云课堂-在线教育解决方案


鸠摩智首席音效师
475 声望9 粉丝

身强体健,龙精虎猛的活着。