Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43027
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 43
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-21 14:04
文章分类
文章存档

2015年(6)

2014年(8)

我的朋友

分类: LINUX

2015-03-12 17:34:20

在知道这个命令之前,一直是自己写脚本来生成随机密码,用于批量管理linux系统账号。脚本如下:

  1. #!/bin/bash

  2. declare -a chars
  3. declare -a nums
  4. chars=(a 1 A b B / c 2 C d D e 3 E f F g . G 4 h H i I g G 5 k K l L m M 6 n N o O p 7 + P q Q R s 8 S t T - u U v 9 V w W x X _ y 0 Y z Z / . + - _)
  5. nums=(0 1 2 3 4 5 6 7 8 9)
  6. echo -n "X"
  7. for ((count=0;count<=13;count++))
  8. do
  9. RA=`expr $RANDOM % 5000`
  10. #RA1=`expr $RANDOM % 10000`

  11.         N_TIME=`expr $RANDOM % 10000`
  12.         G_NUM=$[${N_TIME}%71]
  13.         G_NUM2=$[${RA}%71]
  14.         if [ $[${count}%2] -eq 0 ]
  15.         then
  16.                 echo -n ${chars[$G_NUM]}
  17.         else
  18.                 echo -n ${chars[$G_NUM2]}
  19.         fi
  20. done
  21. echo "J"

运行后,可以得到一个16位的随机密码,但缺点很明显,密码规则需要在脚本里指写,很不方便。

后来,发现了这个命令:mkpasswd ,好用多了。这个命令本来是给用户修改密码的,但我们利用一下它,只要后面不加用户这个参数,就可以用来生成密码了,而且密码强度可以随意调整。用法如下:

  1. 参数:
  2. -l # (密码的长度定义, 默认是 9)
  3. -d # (数字个数, 默认是 16)
  4. -c # (小写字符个数, 默认是 3)
  5. -C # (大写字符个数, 默认是 2)
  6. -s # (特殊字符个数, 默认是 1)
  7. -v (详细。。。)
  8. -p prog (程序设置密码, 默认是 passwd)

例子:

  1. [root@fbl_haiou ~]# mkpasswd -l 10 -d 5 -c 5 -C 0 -s 0
  2. 5t91mk66vu
  3. 生成10位随机密码,只有数字和小写字母。要注意上面的用法,需要把-C和-s设置为0。

  1. [root@fbl_haiou ~]# mkpasswd -l 10 -d 0 -C 7 -c 0 -s 3
  2. B/LILUKQ?+
  3. 生成10位随机密码,只包含大写字母和特殊字符。

有兴趣的童鞋可以自己试一下。

对了,说明一下,这个命令如果没有的话,可以通过安装expect来得到。

阅读(890) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~