前面我们已经介绍过了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 从标准输入读取令牌(只有根用户才能进行此操作)
[root@zmedu-17 ~]# grep gaosh3 /etc/shadowgaosh3:$6$7FI9qn7O$QCnn/3PBZ/wA7n3WVV5cWp.BX4lzVmtlrdogfqUpySuz/kNUbKAVQ7T.AGWPhu1ta0SPO5guEFtdja/FOn68s0:18477:7:60:7:::[root@zmedu-17 ~]#
我们来锁定之后查看与上面有何异同
[root@zmedu-17 ~]# passwd -l gaosh3锁定用户 gaosh3 的密码 。 passwd: 操作成功[root@zmedu-17 ~]# grep gaosh3 /etc/shadowgaosh3:!!$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: 鉴定故障
发现无法登陆,我们来解锁一下
[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 ~]$ whoamigaosh3
可以看到已经能够成功登陆了。
在shell脚本中我们想给一个用户设置密码,肯定不用使用passwd,然后交互输入密码。
passwd给提供了一种方法,使用 --stdin
–stdin 从标准输入读取令牌(只有根用户才能进行此操作)
[root@zmedu-17 ~]# echo 12345678 |passwd --stdin gaosh3更改用户 gaosh3 的密码 。 passwd:所有的身份验证令牌已经成功更新。
passwd和chage命令,两个命令相互补充,能够实现很多功能。