linux如何自动生成随机密码 mkpasswd随机密码工具来帮忙

发布时间:2020-03-24编辑:脚本学堂
在linux下生成随机密码,可以使用shell随机数的原理来实现,这里推荐一个linux随机密码生成工具mkpasswd,分享下mkpasswd命令的用法、参数及实例。

linux中,可以写脚本来生成随机密码,用于批量管理linux系统账号。

本节介绍一个好用的linux随机密码生成工具mkpasswd,有了它,生成随机密码的工作,将变得更加轻松。

例1、普通shell/ target=_blank class=infotextkey>shell脚本生成随机密码的方法。

复制代码 代码示例:

#!/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位的随机密码。
此脚本的缺点:密码规则需要在脚本里指定,不是很方便。

在linux中有个强大的随机密码工具mkpasswd,此命令是用来给用户修改密码的。

这里教大家使用它生成随机密码,只要后面不加用户这个参数,就可以用来生成密码了,而且密码强度可以随意调整。

注意,mkpasswd如果不存在的话,可以通过安装expect来得到,安装方法参考:linux随机密码生成工具mkpasswd安装与使用教程

用法如下:

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

来看mkpasswd工具生成随机密码的一些例子

例子:
 

复制代码 代码示例:

[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位随机密码,只包含大写字母和特殊字符。

linux自动生成密码工具mkpasswd用法

mkpasswd - 为用户产生新口令 
mkpasswd [ args ] [ user ] 

mkpasswd 为用户产生口令并自动应用。它是基于O'Reilly的书 《Exploring Expect》 第23章中的代码的。 

mkpasswd命令的用法
不带参数的话, mkpasswd 返回一个新口令。带上用户名的话, mkpasswd 为该用户分配一个新口令。
根据以下的标志可以随机性的产生口令。

标志(常用参数):
-l 标志定义口令长度。缺省值为9。以下示例建立一个20位的口令。
        mkpasswd -l 20

-d 标志定义口令必须包含的最少数字位数。缺省值为2。以下示例建立一个含3位数字的口令。
        mkpasswd -d 3
-c 标志定义口令必须包含的最少小写字母个数。缺省值为2。

-C 标志定义口令必须包含的最少大写字母个数。缺省值也是2。
The -s flag defines the minimum number of special characters that must be in the password. The default is 1.

-p 标志标明设立口令的程序。如果/etc/yppasswd存在的话则它为缺省值,否则就用/bin/passwd。

-2 标志交换键盘上左右手的字母(我想就是左手输入g则为h吧),以使别人更难监视输入的口令。这也使口令猜测程序更容易成功。(这句不懂,请高手指教!)

-v 使设定口令的交互可见,但缺省是不可见的。
 
例子,使用mkpasswd命令建立一个15位包含至少3位数字和5位大写字符的口令。
 

复制代码 代码示例:
mkpasswd -l 15 -d 3 -C 5

您可能感兴趣的文章: