在知道这个命令之前,一直是自己写脚本来生成随机密码,用于批量管理linux系统账号。脚本如下:
-
#!/bin/bash
-
-
declare -a chars
-
declare -a nums
-
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 / . + - _)
-
nums=(0 1 2 3 4 5 6 7 8 9)
-
echo -n "X"
-
for ((count=0;count<=13;count++))
-
do
-
RA=`expr $RANDOM % 5000`
-
#RA1=`expr $RANDOM % 10000`
-
-
N_TIME=`expr $RANDOM % 10000`
-
G_NUM=$[${N_TIME}%71]
-
G_NUM2=$[${RA}%71]
-
if [ $[${count}%2] -eq 0 ]
-
then
-
echo -n ${chars[$G_NUM]}
-
else
-
echo -n ${chars[$G_NUM2]}
-
fi
-
done
-
echo "J"
-
运行后,可以得到一个16位的随机密码,但缺点很明显,密码规则需要在脚本里指写,很不方便。
后来,发现了这个命令:mkpasswd ,好用多了。这个命令本来是给用户修改密码的,但我们利用一下它,只要后面不加用户这个参数,就可以用来生成密码了,而且密码强度可以随意调整。用法如下:
-
参数:
-
-l # (密码的长度定义, 默认是 9)
-
-d # (数字个数, 默认是 16)
-
-c # (小写字符个数, 默认是 3)
-
-C # (大写字符个数, 默认是 2)
-
-s # (特殊字符个数, 默认是 1)
-
-v (详细。。。)
-
-p prog (程序设置密码, 默认是 passwd)
例子:
-
[root@fbl_haiou ~]# mkpasswd -l 10 -d 5 -c 5 -C 0 -s 0
-
5t91mk66vu
-
生成10位随机密码,只有数字和小写字母。要注意上面的用法,需要把-C和-s设置为0。
-
[root@fbl_haiou ~]# mkpasswd -l 10 -d 0 -C 7 -c 0 -s 3
-
B/LILUKQ?+
-
生成10位随机密码,只包含大写字母和特殊字符。
有兴趣的童鞋可以自己试一下。
对了,说明一下,这个命令如果没有的话,可以通过安装expect来得到。
阅读(3474) | 评论(0) | 转发(1) |