第十八章 Linux系统用户密码管理

一、如何设置密码

管理员可以给任何用户设置密码  密码的长度没有限制  

普通用户只能给自己设置密码  且是无规律的8位以上的密码  

二、用户密码管理命令-passwd

1.含义

passwd命令来自于英文单词password的缩写,其功能适用于修改用户的密码值。同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。

常用格式:passwd [参数] 用户名

2.常用参数:

-d 删除已有密码
-l 锁定用户的密码值,不允许修改
-u 解锁用户的密码值,允许修改
-e 下次登陆强制修改密码
-k 用户在期满后能仍能使用
-S 查询密码状态

3.常用示例

修改当前登录用户的密码值

[root@jindada ~]# passwd
Changing password for user root.
New password: 输入密码
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.

修改指定用户的密码值

[root@jindada ~]# passwd user02
Changing password for user user02.
New password: 输入密码
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.

锁定指定用户的密码值,不允许其进行修改

[root@jindada ~]# passwd -l user02
Locking password for user user02.
passwd: Success

解锁指定用户的密码值,允许其进行修改

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

强制指定的用户在下次登陆时必须重置其密码

[root@jindada ~]# passwd -e user02
Expiring password for user user02.
passwd: Success

删除指定用户的密码值

[root@jindada ~]# passwd -d user02
Removing password for user user02.
passwd: Success

查看指定用户的密码状态:

[root@jindada ~]# passwd  -S user02 
user02 NP 2022-11-03 0 99999 7 -1 (Empty password.)

三、非交互式设置密码

[root@jindada ~]# echo  '2'  | passwd  --stdin  jindada01
Changing password for user jindada01.
passwd: all authentication tokens updated successfully.

四、读取标准输入的数据命令-tee

1.含义

tee命令的功能是用于读取标准输入的数据,将其内容转交到标准输出设备中,同时保存成文件。

语法格式:tee [参数] 文件

2.常用参数:

-a 追加写入操作
-i 忽略中断信号
— help 查看帮助信息
— version 显示版本信息

3.常用示例

将用户输入的数据同时写入到两个文件中

[root@jindada ~]# tee file1 file2
jindada.com
jindada.com

执行某个指定的命令,并将其执行结果即输出到屏幕,又写入到文件中

[root@jindada ~]# uptime | tee system.txt
 16:13:43 up  1:38,  1 user,  load average: 0.00, 0.00, 0.00

五、设置随机密码

1.获得随机数

[root@jindada ~]# echo $RANDOM
28241
[root@jindada ~]# echo $RANDOM | md5sum
6c8a1df9e12e9c553d0f9a397b860f4e  -
[root@jindada ~]# echo $RANDOM | md5sum | cut -c 1-10
64091f6823
[root@jindada ~]# echo $RANDOM | md5sum | cut -c 1-10
df0676f775

2.设置密码

# 密码设置成功,但是不知道密码 
[root@jindada ~]# echo $RANDOM | md5sum | cut -c 1-10  | passwd  --stdin  jindada01
Changing password for user jindada01.
passwd: all authentication tokens updated successfully.

3.设置随机密码并输出

[root@jindada ~]# echo $RANDOM | md5sum | cut -c 1-10 |tee  pass.txt
b676039b3f

[root@jindada ~]# echo $RANDOM | md5sum | cut -c 1-10 |tee  pass.txt  | passwd  --stdin  jindada01
Changing password for user jindada01.
passwd: all authentication tokens updated successfully.

[root@jindada ~]# cat pass.txt 
7d53328b61

六、设置更复杂的密码-mkpasswd

1.含义

mkpasswd是make password的简写。mkpasswd命令的作用是可以生成应用用户的新密码,选择将其应用于用户。

mkpasswd命令使用前需要安装expect包。

语法格式:mkpasswd [参数] [用户]

2.安装

[root@jindada ~]# yum install  -y  expect

3.常用参数

-c 定义在密码中小写字母字符的最小数目,默认值是2
-C 定义在密码中大写字母字符的最小数目,默认值是2
-s 定义在密码中特殊字符的最小数目,默认值是1
-p 指定程序来设置密码。默认情况下,如果存在使用/etc/yppasswd,否则使用/bin/passwd
-d 指定数字位数,默认值是2
-l 指定的密码位数,默认值为9
-v 导致密码设置互动可见

4.常用示例

生成随机密码同时制定长度为20

[root@linuxcool ~]# mkpasswd -l 20

生成指定数字位数的密码

[root@linuxcool ~]# mkpasswd -d 3

为用户更改随机密码

[root@jindada ~]# mkpasswd  
gC}2atTf9
[root@jindada ~]# mkpasswd  -l 24  -d 6 -c 6 -C 6 -s 6
sv_^WF85J@DF5Ng5|3{f3/ng
[root@jindada ~]# mkpasswd  -l 24 
9px3Sesrx[ybtbvElubxxltj
[root@jindada ~]# mkpasswd  -l 24 
uimYw\Z4amzffhti0eljucgg
[root@jindada ~]# mkpasswd  -l 24 -s 24
impossible to generate 24-character password with 2 numbers, 2 lowercase letters, 2 uppercase letters and 24 special characters.
[root@jindada ~]# mkpasswd  -l 24 -s 24 -d 0 -c 0 -C 0 
$.$}+?;-~]|)>(#_),[)!#@$

[root@jindada ~]# mkpasswd  -l 24 -s 24 -d 0 -c 0 -C 0   | tee  pass.txt  | passwd  --stdin  jindada01
Changing password for user jindada01.
passwd: all authentication tokens updated successfully.

[root@jindada ~]# cat pass.txt 
:{]~"/'%[,+"^*%??%,'?}~$
posted @ 2020-07-16 20:10  年少纵马且长歌  阅读(377)  评论(0编辑  收藏  举报