文章目录


前言查看帮助passwd的用户锁定和解锁
  • a. 加锁测试
  • b. 解锁测试
  • 标准输入读取密码
  • 总结


前言

前面我们已经介绍过了passwd的使用,今天我们再来看一些特殊的用法

查看帮助

[root@zmedu-17 ~]# passwd --help
用法: passwd [选项...] <帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock 锁定指名帐户的密码(仅限 root 用户)
-u, --unlock 解锁指名账户的密码(仅限 root 用户)
-e, --expire 终止指名帐户的密码(仅限 root 用户)
-f, --force 强制执行操作
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)

passwd的用户锁定和解锁


  • -l, --lock 锁定指名帐户的密码(仅限 root 用户)
  • -u, --unlock 解锁指名账户的密码(仅限 root 用户)

[root@zmedu-17 ~]# grep gaosh3 /etc/shadow
gaosh3:$6$7FI9qn7O$QCnn/3PBZ/wA7n3WVV5cWp.BX4lzVmtlrdogfqUpySuz/kNUbKAVQ7T.AGWPhu1ta0SPO5guEFtdja/FOn68s0:18477:7:60:7:::
[root@zmedu-17 ~]#
a. 加锁测试

我们来锁定之后查看与上面有何异同

[root@zmedu-17 ~]# passwd -l gaosh3
锁定用户 gaosh3 的密码 。
passwd: 操作成功
[root@zmedu-17 ~]# grep gaosh3 /etc/shadow
gaosh3:!!$6$7FI9qn7O$QCnn/3PBZ/wA7n3WVV5cWp.BX4lzVmtlrdogfqUpySuz/kNUbKAVQ7T.AGWPhu1ta0SPO5guEFtdja/FOn68s0:18477:7:60:7:::
[root@zmedu-17 ~]#

可以看到在密码前面多了两个感叹号,这就表示锁定了gaosh3d 密码

测试

[root@zmedu-17 ~]# su - gaosh1

[gaosh1@zmedu-17 ~]$ su - gaosh3
密码:
su: 鉴定故障

发现无法登陆,我们来解锁一下

b. 解锁测试
[root@zmedu-17 ~]# passwd -u gaosh3
解锁用户 gaosh3 的密码。
passwd: 操作成功
[root@zmedu-17 ~]#
[root@zmedu-17 ~]# su - gaosh1
上一次登录:一 8月 3 16:00:27 CST 2020pts/2 上
[gaosh1@zmedu-17 ~]$ su - gaosh3
密码:
上一次登录:一 8月 3 15:32:59 CST 2020pts/2 上
最后一次失败的登录:一 8月 3 16:00:45 CST 2020pts/2 上
最有一次成功登录后有 1 次失败的登录尝试。
[gaosh3@zmedu-17 ~]$ whoami
gaosh3

可以看到已经能够成功登陆了。

标准输入读取密码

在shell脚本中我们想给一个用户设置密码,肯定不用使用passwd,然后交互输入密码。

passwd给提供了一种方法,使用 --stdin

–stdin 从标准输入读取令牌(只有根用户才能进行此操作)

[root@zmedu-17 ~]# echo 12345678 |passwd --stdin  gaosh3
更改用户 gaosh3 的密码 。
passwd:所有的身份验证令牌已经成功更新。

总结

passwd和chage命令,两个命令相互补充,能够实现很多功能。