用户密码管理

用户密码管理

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计算会加`$`在内。

posted on 2017-11-01 06:23  游荡的鱼  阅读(559)  评论(0编辑  收藏  举报

导航