Linux 密码生成利器:pwgen 命令详解
往期好文:统信 UOS 运行 Windows 应用新利器!彩虹虚拟化软件 V3.2 全新上线,限时30天免费体验
在日常运维、安全测试、用户管理等场景中,随机密码的生成是一项常见需求。为了避免人工设置密码带来的重复性弱密码问题,Linux 系统中提供了一个非常实用的工具——pwgen。它能够快速生成符合规则、长度可调、可读性强的密码,非常适合系统管理员和开发人员使用。本文将对 pwgen 命令进行详尽介绍,涵盖其安装方法、常用参数、实战示例以及注意事项。
一、什么是 pwgen?
pwgen 是一个命令行工具,用于生成多个随机密码。相比手动生成或使用 openssl rand 这类工具,pwgen 更加简单易用,支持多种密码生成模式,并可控制密码的可读性和安全性。
二、安装 pwgen
-
Debian / Ubuntu / UOS / 麒麟系统:
pdsyw@pdsyw1024:~/Desktop$ sudo apt update pdsyw@pdsyw1024:~/Desktop$ sudo apt install pwgen
-
RHEL / CentOS / Anolis / Kylin V10:
sudo yum install pwgen
-
Arch Linux / Manjaro:
sudo pacman -S pwgen
三、基本用法
最基本的命令格式如下:
pwgen [选项] [密码长度] [生成个数]
示例:
pdsyw@pdsyw1024:~/Desktop$ pwgen 12 5 ohWohSaTha0u daefahf6eeSa mafiezohPoo5 reiK4ephe1ci ohV0iesaiyae
表示生成 5 个长度为 12 位的密码。
四、常用参数详解
参数 | 含义 |
---|---|
-s | 使用更安全的密码生成方式(包含更多字符类型) |
-y | 密码中包含特殊符号(如 !@#) |
-c | 包含大小写字母(默认启用) |
-n | 包含数字(默认启用) |
-0 | 排除容易混淆的字符(如 0 和 O) |
-B | 生成易于发音的密码(默认) |
-N <数目> | 明确指定要生成几个密码 |
-1 | 每行只输出一个密码 |
--help | 查看帮助文档 |
pdsyw@pdsyw1024:~/Desktop$ pwgen -s 12 5 0g9jp9t2kNLt 37uuZIzfUkRg JN76pzfvwIy2 XdALLtqH4Lsm QVA3NoTQbQfd pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y 12 5 9.Qfp*iRxc}Q Q@5/WqwS@%KC Kw0)n9WLH1JR Hok=#I@~1FN; ;VP3Gyh]B[b- pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c 12 5 Qn=A2P/mlu_! R;!8u"r@k+>< r}pzQiOx+q;8 If1;ON[&a'dV i;u~l>rDl4WB pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c -n 12 5 ?!drq42Q]|=h Wf*yHGMk$]7G $bG}**>P'W0d =y=;"I0)<.y: <;^vI4$M))a: pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c -n -0 12 5 CG%^u#)K}sRU ^/ShV^;<~wJQ \'=ByFC&injA d,l*}s\dPm#a rPH*yeK~(GV= pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c -n -0 -B 12 5 ]pyAp%,K%JiH $`/R!mH/W&hX ,*@pC%m~&\\/ a:*;?oix(XM& jqHe)R.(sn!u pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c -n -0 -B 12 -N 5 rWWLxwp_w#+r X^?nvqpYn^eV -,},{@rATC[. Rb|zwk`@sCpP <UUik=_n&[tC pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y -c -n -0 -B -1 12 -N 5 *'A'<foK;N"w uXvVHK<&$%;- ALAvfy.(WhCK )^^Y*iyHbC:, >"mgKNp:CXp<
五、实用示例
示例1:生成 10 个长度为 16 的随机密码
pdsyw@pdsyw1024:~/Desktop$ pwgen 16 10
示例2:生成更安全的密码(包含特殊字符)
pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y 16 5
示例3:生成只包含数字和字母的密码
pdsyw@pdsyw1024:~/Desktop$ pwgen -c -n -s 12 3
示例4:生成适合语音传达的密码
pdsyw@pdsyw1024:~/Desktop$ pwgen -B 8 5
示例5:在脚本中生成一个安全密码用于初始化用户
pdsyw@pdsyw1024:~/Desktop$ PASSWORD=$(pwgen -s 16 1) pdsyw@pdsyw1024:~/Desktop$ echo "新用户默认密码为:$PASSWORD" 新用户默认密码为:tGS8P8210nw6o9jj
六、使用建议
生产系统中建议使用 -s 和 -y 选项,以确保密码复杂性。
避免将密码直接输出到终端或日志,可以使用 pwgen 结合脚本加密或转存到安全文件。
如果系统不允许使用特殊符号,请避免使用 -y 选项。
结语
pwgen 是一个轻量级但功能强大的密码生成工具,适合在各种自动化脚本、系统配置和临时密码生成中使用。掌握它,将为你的日常运维工作提供极大的便利,同时也有助于提升系统安全性。推荐使用场景:用户初始密码生成、服务部署脚本集成、数据库密码配置等。如需深入了解 pwgen,可查看其 man 页面:
man pwgen
如果你觉得这篇文章对你有帮助,欢迎点赞、收藏或转发给身边的朋友!