Linux/UNIX 使用mkpasswd/makepasswd/pwgen生成随机密码
时间:2019-11-20 08:54:09 来源:igfitidea点击:
在信息系统管理中,有时候我们需要给申请用户设置一个随机密码,应该如何实现?
在shell脚本中如何生成随机密码?
在Linux或Unix中如何创建随机密码?
安装makepasswd
在Debian/Ubuntu Linux上安装mkpasswd或makepasswd:
$ sudo apt-get install makepasswd
mkpasswd语法
语法为:
makepasswd makepasswd [options]
mkpasswd示例
只需执行以下命令:
$ makepasswd
输出示例:
m4peQm97s
要生成长度为16个字符的密码,将16传递给--chars选项,如下所示:
$ makepasswd --chars 16
输出示例:
cSYhQ55aNRshmBT5
生成5个密码:
$ makepasswd --chars 16 --count 5
输出示例:
W6Lfrus9m08uAL7j gdTiP2F4Td94oyWN qoeezVzHh38m1aYK HI0R66ExHw558L2N 5I6UH7WdUmX9e3Xg
其他命令行选项如下:
--crypt Produce encrypted passwords. --crypt-md5 Produce encrypted passwords using the MD5 digest (hash) algorithm. --cryptsalt=N Use crypt() salt N, a positive number
mkpasswd命令语法
在大多数Linux发行版中,默认情况下已安装mkpasswd。
语法如下:
mkpasswd mkpasswd [options] mkpasswd [options] [user]
mkpasswd命令示例
只需执行mkpasswd命令:
$ mkpasswd
输出示例:
Password: type-Your-Password /o88/D4SvLix2
设置密码长度:
$ mkpasswd -l 12
将密码存储在shell变量中:
RPASS=$(mkpasswd -l 12) echo "$RPASS"
mkpasswd命令其他选项
-d # (min # of digits, default = 2) -c # (min # of lowercase chars, default = 2) -C # (min # of uppercase chars, default = 2) -s # (min # of special chars, default = 1)
创建一个包含24个字符的密码,至少包含3位数字,3个字符和5个大写字符:
$ mkpasswd -l 22 -d 3 -C 5 -s 3
安装pwgen命令
还可以安装并使用pwgen命令来自动生成密码。
在RHEL/CentOS/Fedora Linux上安装pwgen,使用yum命令,如下所示:
# yum -y install pwgen
在Debian/Ubuntu Linux上安装pwgen,使用apt-get命令,如下所示:
$ sudo apt-get install pwgen
pwgen命令语法和示例
语法为:
pwgen pwgen -N 1 pwgen [options]
生成随机密码:
$ pwgen
只生成一个密码:
$ pwgen -N 1
生成一个长度为20个字符的密码:
$ pwgen 20 1
pwgen命令支持的选项:
-c or --capitalize Include at least one capital letter in the password -A or --no-capitalize Don't include capital letters in the password -n or --numerals Include at least one number in the password -0 or --no-numerals Don't include numbers in the password -y or --symbols Include at least one special symbol in the password -s or --secure Generate completely random passwords -B or --ambiguous Don't include ambiguous characters in the password -h or --help Print a help message -H or --sha1=path/to/file[#seed] Use sha1 hash of given file as a (not so) random generator -C Print the generated passwords in columns -1 Don't print the generated passwords in columns -v or --no-vowels Do not use any vowels so as to avoid accidental nasty words