用户密码管理
用户密码管理
passwd用法
-l
解锁用户,去掉shadow密码字段的!
,只是密码锁定,是密码无效,账户是可以通过ssh的密钥登入的-u
锁定用户,在shadow密码字段加上!
-d
删除密码数据f
强制执行指定的操作-S
查看用户状态--stdin
从标准输入中读取密码,可以在管道中使用
[root@xujb01 test]# tail -n1 /etc/shadow
test09::17469:0:99999:7:::
[root@xujb01 test]# passwd -S test09
test09 NP 2017-10-30 0 99999 7 -1 (密码为空。)
[root@xujb01 test]# passwd -l test09;passwd -S test09 #-l 锁定用户, -S 查看用户状态 且passwd:参数 -l,-u,-d,-S 只能指定其中的一个
锁定用户 test09 的密码 。
passwd: 操作成功
test09 LK 2017-10-30 0 99999 7 -1 (密码已被锁定。)
[root@xujb01 test]# tail -n1 /etc/shadow
test09:!!:17469:0:99999:7:::
-----------------------------------------------------------------------
[root@xujb01 test]# passwd --stdin test09 #从标准输入中读取密码并更新密码,只是输入了一遍密码并明文显示
更改用户 test09 的密码 。
123456
passwd:所有的身份验证令牌已经成功更新。
[root@xujb01 test]# echo -e '12345678\n12345678' | passwd test09 #同样通过管道也可以设置密码需要\n,因为密码需要输入两次期间有个ENTER(即‘\n’)确认
更改用户 test09 的密码 。 #echo -e 启用反斜杠转义(backslash escapes)
新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
[root@xujb01 test]# tail -n1 /etc/shadow #重新设置密码会接触密码锁定
test09:$6$7W1KNwgL$IV/cLOyX.N7OpWNmG0m0BMHi9vrQtZUqHjigOHYJPgQJLA1YCxT3Kp5ST9SKjGR6.W./JROfFaV2TJbGi1CPu1:17470:0:99999:7:::
[root@xujb01 test]# passwd -d test09 #"-d"删除密码
清除用户的密码 test09。
passwd: 操作成功
[root@xujb01 test]# tail -n1 /etc/shadow
test09::17470:0:99999:7:::
mkpasswd使用
下载安装mkpasswd命令
- yum -y install expect
mkpasswd命令使用
- mkpasswd不加参数则默认生成10位随机字符
-l
设定密码长度 默认10-d
设定数字最小长度 默认2-c
设定小写字母最小长度 默认2-C
设定大写字母最小长度 默认2-s
设定特殊字符最小长度 默认1
#设定一个12位密码并且 最小数字为3 小写:3大写:3 特殊字符:3,所以虽然要求是最小个数要求,但是生成的密码一定是各个字符各3个
[root@xujb01 test]# mkpasswd -l 12 -d 3 -c 3 -C 3 -s 3
g|4%2hB5Ea\R
[root@xujb01 test]# mkpasswd -l 12 -d 3 -c 3 -C 3 -s 3 | wc #计数13个字符 -l 10也显示的11个字符,是不是加了结束符?
1 1 13
给指定用户创建密码并保存
从user.txt文件读取用户并用mkpasswd生成密码后和对应user一起保存在store.txt中
[root@xujb01 test]# cat users.txt
test01
test02
test03
test04
test05
[root@xujb01 test]# while read line;do echo -en $line"\t">>store.txt ;mkpasswd>>store.txt ;done < users.txt
[root@xujb01 test]# cat store.txt
test01 &0bOqw5yL
test02 gB$yDks39
test03 55nEBt+rx
test04 %tGI4uc5v
test05 :yX02dxIq
问题:
- mkpasswd 使用
-l
参数后,用wc -c
计数会比实际显示的多1个? ——是否是有结束符$
答:mkpasswd 默认是生成9个字符,wc计算会加`$`在内。