当前位置: 首页 > news >正文

Linux 密码生成利器:pwgen 命令详解

 往期好文:统信 UOS 运行 Windows 应用新利器!彩虹虚拟化软件 V3.2 全新上线,限时30天免费体验

在日常运维、安全测试、用户管理等场景中,随机密码的生成是一项常见需求。为了避免人工设置密码带来的重复性弱密码问题,Linux 系统中提供了一个非常实用的工具——pwgen。它能够快速生成符合规则、长度可调、可读性强的密码,非常适合系统管理员和开发人员使用。本文将对 pwgen 命令进行详尽介绍,涵盖其安装方法、常用参数、实战示例以及注意事项。

一、什么是 pwgen?

pwgen 是一个命令行工具,用于生成多个随机密码。相比手动生成或使用 openssl rand 这类工具,pwgen 更加简单易用,支持多种密码生成模式,并可控制密码的可读性和安全性。

二、安装 pwgen

  1. Debian / Ubuntu / UOS / 麒麟系统:

pdsyw@pdsyw1024:~/Desktop$ sudo apt update 
pdsyw@pdsyw1024:~/Desktop$ sudo apt install pwgen

img

  1. RHEL / CentOS / Anolis / Kylin V10:

sudo yum install pwgen

  1. 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<

img

五、实用示例

示例1:生成 10 个长度为 16 的随机密码

pdsyw@pdsyw1024:~/Desktop$ pwgen 16 10

img

示例2:生成更安全的密码(包含特殊字符)

pdsyw@pdsyw1024:~/Desktop$ pwgen -s -y 16 5

img

示例3:生成只包含数字和字母的密码

pdsyw@pdsyw1024:~/Desktop$ pwgen -c -n -s 12 3

img

示例4:生成适合语音传达的密码

pdsyw@pdsyw1024:~/Desktop$ pwgen -B 8 5

img

示例5:在脚本中生成一个安全密码用于初始化用户

pdsyw@pdsyw1024:~/Desktop$ PASSWORD=$(pwgen -s 16 1)
​
pdsyw@pdsyw1024:~/Desktop$ echo "新用户默认密码为:$PASSWORD"
​
新用户默认密码为:tGS8P8210nw6o9jj

img

六、使用建议

生产系统中建议使用 -s 和 -y 选项,以确保密码复杂性。

避免将密码直接输出到终端或日志,可以使用 pwgen 结合脚本加密或转存到安全文件。

如果系统不允许使用特殊符号,请避免使用 -y 选项。

结语

pwgen 是一个轻量级但功能强大的密码生成工具,适合在各种自动化脚本、系统配置和临时密码生成中使用。掌握它,将为你的日常运维工作提供极大的便利,同时也有助于提升系统安全性。推荐使用场景:用户初始密码生成、服务部署脚本集成、数据库密码配置等。如需深入了解 pwgen,可查看其 man 页面:

man pwgen

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏或转发给身边的朋友!

http://www.xdnf.cn/news/1149283.html

相关文章:

  • 测试计划(抽奖系统)
  • 考研复习-数据结构-第七章-查找
  • Linux“一切皆文件“设计哲学 与 Linux文件抽象层:struct file与file_operations的架构解析
  • 我做的基础服务项目,是如何实现 API 安全与限流的(短信、邮件、文件上传、钉钉通知)
  • Jenkins 实现项目的构建和发布
  • 企业运维实战:Jenkins 依赖 JDK21 与应用需 JDK1.8 共存方案(含流水线配置)
  • 【ExtendScript Toolkit CC】【PR插件开发】获取当前序列的所有剪辑片段名
  • Java 性能调优实战:JVM 参数配置与 GC 日志分析
  • 深度学习-线性神经网络
  • QCC系列显示交互层的自研技术突破与实践
  • 本地大模型部署工具全解析:LM Studio vs. Ollama 及最佳实践指南
  • 81、【OS】【Nuttx】【启动】caller-saved 和 callee-saved 示例:压栈内容
  • Mybatis学习之简介(一)
  • Django接口自动化平台实现(三)
  • 多式联运物流管理系统的设计与实现(原创)
  • picoCTF 2024: [[NoSQL]] Injection - Writeup
  • 【MATLAB例程】Taylor算法用于TOA(到达时间)的三维标签位置解算,可自适应基站数量。附下载链接
  • 一个基于阿里云的C端Java服务的整体项目架构
  • 后缀树:字符串处理的利器
  • 模型轻量化全指南:从剪枝量化到低配置设备部署实战
  • 【Linux】基本指令详解(三) 指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器
  • Go-Redis × 向量检索实战用 HNSW 在 Redis 中索引与查询文本 Embedding(Hash JSON 双版本)
  • 智能光电检测:YOLO+OpenCV联合算法工程实践
  • 【运维】flash attention安装出现错误及编译慢
  • 思维链(CoT)技术全景:原理、实现与前沿应用深度解析
  • windows wsl2-06-docker hello world
  • 1.初始化
  • Windows原生环境配置Claude Code MCP(通过JSON)
  • 【MySQL笔记】视图
  • Spring AI 项目实战(十九):Spring Boot + AI + Vue3 + OSS + DashScope 构建多模态视觉理解平台(附完整源码)