Linux基础(15)之密码管理

Linux基础(15)之密码管理

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

修改指定用户密码

要修改指定用户的密码可使用 passwd 命令,格式如下:

passwd USERNAME

例:创建用户 user1 并修改它的密码为 zhangze123

[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

该方式更改密码是交互式的,当键入命令 passwd user1 回车后终端会等待接受标准输入信息。
还有一种非交互式的方式修改密码,选项 --stdin 可以让 passwd 命令从标准输入来接收用户密码。使用如下:

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

该操作仅限 root 用户使用。

修改自己的密码

要修改自己密码也是使用 passwd 命令,只是不需要参数。
例:通过 su 命令切换到 user2 用户,使用 passwd 命令修改自己的密码。

[root@localhost ~]# su - user2
上一次登录:二 9月 10 14:55:51 CST 2019pts/1 上
[user2@localhost ~]$ passwd
更改用户 user2 的密码 。
为 user2 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

普通用户修改自己密码时受 Linux 密码复杂度限制。

锁定和解锁用户

passwd 命令有着和 usermod 命令相同的锁定和解锁用户的功能。
锁定用户需要使用 -l 选项,例:

[root@localhost ~]# passwd -l user2
锁定用户 user2 的密码 。
passwd: 操作成功

解锁用户需要使用 -u 选项,例:

[root@localhost ~]# passwd -u user2
解锁用户 user2 的密码。
passwd: 操作成功

锁定和解锁的操作实际上就是在 /etc/shadow 文件中的对应用户密码前添加和去除 ! 号。

指定使用期限

可通过 -n 选项来指定某用户密码的最小使用期限。
例:修改 user2 用户让其密码最少使用 2 天。

[root@localhost ~]# passwd user2 -n 2
调整用户密码老化数据user2。
passwd: 操作成功

可通过 -x 选项来指定某用户密码的最大使用期限。
例:修改 user2 用户让其密码最少使用 50 天。

[root@localhost ~]# passwd user2 -x 50
调整用户密码老化数据user2。
passwd: 操作成功

指定警告时间

还可使用 -w 选项来指定在密码过期时间多少天之前警告用户修改密码。
例:在密码过期时间之前 3 天提醒 user2 用户修改密码。

[root@localhost ~]# passwd user2 -w 3
调整用户密码老化数据user2。
passwd: 操作成功

指定非活动期限

非活动期限指的是用户密码过期后多少天还能登录进系统修改密码,通过 -i 选项指定。
例:让 user2 用户在密码过期后 2 天后还能登陆进系统修改密码。

[root@localhost ~]# passwd user2 -i 2
调整用户密码老化数据user2。
passwd: 操作成功

让密码过期

执行 passwd USERNAME -e 可让指定用户密码立即过期。
例:让 user2 用户的密码立即过期:

[root@localhost ~]# passwd user2 -e
正在终止用户 user2 的密码。
passwd: 操作成功

删除密码

执行 passwd USERNAME -d 可删除指定用户密码。
例:删除 user2 的密码。

[root@localhost ~]# passwd user2 -d
清除用户的密码 user2。
passwd: 操作成功

上述大部分操作其实都是对 /etc/shadow 文件内容的修改,该文件的详细描述可通过man 5 shadow 查看。

补充

/dev/null

在 Linux 中有一个文件类似于 Windows 中的回收站,往里面丢啥没啥,该文件路径为 /dev/null,它也叫 bit buckets。
它可以接受一个输入,我们可以用它来屏蔽标准输出信息。
例:输出信息到 /dev/null

[root@localhost ~]# echo '丢进黑洞' &> /dev/null

pwck

pwck 命令主要用来检查密码文件中有没有有问题的用户存在即检查密码文件的完整性,具体信息可通过 man pwck 查看。

[root@localhost ~]# pwck
用户“ftp”:目录 /var/ftp 不存在
pwck:无改变

chage

chage 命令主要用来设置用户密码的过期信息,使用格式如下:

chage [OPTION...] <USER>

选项说明:

  • -d:设置用户上一次修改密码的时间。
  • -E:设置密码的过期时间。
  • -I:设置用户密码的非活动期限。
  • -m:设置密码的最小使用期限。
  • -M:设置密码的最大使用期限。
  • -W:设置再密码过期时间之前多少天警告修改密码。

更多详细信息可通过 man chage 查看。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/linux-base-15.html

Buy me a cup of coffee ☕.