有时候经常为如何设置一个安全、符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结。终于有一天实在忍不住了,于是学习、整理了一下如何使用Linux下命令来随机生成安全、符合密码复杂度的命令。

俗话说“工欲善其事必先利其器”。如果能用挖土机的,你为什么要用锄头? 最近一直在反思自己:习惯性用原始、老旧的方式解决问题。而不擅长利用一些工具快捷、方便的解决问题。

1:mkpaswd命令

mkpasswd 是Linux自带的一个密码生成工具,可以说是非常安全、可靠的(如果你担心一些在线的随机密码生成工具,会收集、记录你生成的密码的话)。个人非常喜欢这个工具的原因就是它可以设置生成密码的复杂度。另外,它不仅可以随机帮你生成密码,还可以直接帮你修改相关账号密码。如果你找不到这个命令,那么可能你没有安装expect包。

方式1: yum安装方式。

yum -y install expect

方式2: rpm安装方式。

[root@DB-Server Server]# ls *expect*

expect-5.43.0-5.1.i386.rpm expect-5.43.0-5.1.x86_64.rpm expect-devel-5.43.0-5.1.i386.rpm expect-devel-5.43.0-5.1.x86_64.rpm expectk-5.43.0-5.1.x86_64.rpm pexpect-2.3-3.el5.noarch.rpm

[root@DB-Server Server]# rpm -ivh expect-5.43.0-5.1.x86_64.rpm

warning: expect-5.43.0-5.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:expect ########################################### [100%]

关于mkpasswd命令的一些参数,如下所示:

参数

功能描述

-l

定义生成密码的长度,默认9

-d

定义密码里面包含数字的最少个数,默认2

-c

定义密码里面包含小写字母的最少个数,默认2

-C

定义密码里面包含大写字母的最少个数,默认2

-s

定义密码密码包含特殊字符的最少个数,默认1

-p

指定另外一个生成密码的程序,默认是/etc/yppasswd

[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v kerry

spawn passwd kerry

passwd: Unknown user name 'kerry'.

password for kerry is 1S[(qillErt8xf

[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v test

spawn passwd test

passwd: Unknown user name 'test'.

password for test is 1ar1t$-qwIHcrb

[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 -v oracle

spawn passwd oracle

Changing password for user oracle.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

password for oracle is 24_vFkxqsol^pR

[root@DB-Server Server]#

[root@DB-Server Server]# mkpasswd -l 14 -d 2 -C 2 -s 2 oracle

i&jijfgB92*fDa

[root@DB-Server Server]#

2:apg命令

安装方式:

1:Ubuntu下的apt-get方式:

sudo apt-get install apg

2:使用RPM方式:

[root@DB-Server tmp]# rpm -ivh apg-2.2.3-3.el5.rf.i386.rpm

warning: apg-2.2.3-3.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6

Preparing... ########################################### [100%]

1:apg ########################################### [100%]

[root@DB-Server tmp]#

关于apg命令的一些参数,如下所示:

参数

功能描述

-M

生成密码的模式

-E

生成密码过程中排除字符串

-r

apply dictionary check against file

-b

-p

paranoid modifier for bloom filter check

-a

1: 随机密码生成模式。  0:可发音的密码生成

-n

包含数字,但是不是每个密码都有

-N

每个密码都必须包含数字

-m

生成密码最小长度,默认为8,实际生成的随机密码长度都可能超过这个值

-x

生成密码最大长度。

-s

包含特殊字符,但是不一定每个都有

-S

每个密码都必须有特殊字符

-c

包含大写字母。

-C

每个密码都必须包含小写字母

-d

在生成的密码中间不加任何分割符,默认6个密码连成一长串

-l

生成密码的spell

-t

输出密码中可发音字符的发音

-y

输出加密密码

-q

静默模式,不输出告警信息

-h

输出帮助信息

-v

版本信息。

[root@DB-Server ~]#

[root@DB-Server ~]# apg -M SNCL -m 8 -x 12

Cupif6Swib?

Kij/OvMuk7

cyn=OtDuIf1

eic3Enn>

newCod"Rab4

{Flipnayt0

[root@DB-Server ~]# apg -M SNCL -m 8 -x 12 -t

dujghitt6Ob` (duj-ghitt-SIX-Ob-GRAVE)

RewgEmEc7Ow~ (Rewg-Em-Ec-SEVEN-Ow-TILDE)

Oc%Knegg1 (Oc-PERCENT_SIGN-Knegg-ONE)

loon5Quem+ (loon-FIVE-Quem-PLUS_SIGN)

El5Bleb{ (El-FIVE-Bleb-LEFT_BRACE)

Te4qued( (Te-FOUR-qued-LEFT_PARENTHESIS)

3:pwgen

apt-get install pwgen

关于pwgen命令的一些参数,如下所示:参数说明:

参数

功能描述

-c

密码里面包含至少一个大写字母

-A

密码里面不包含大写字母

-n

密码里面至少包含一个数字。

-0

密码中不包含数字

-y

密码中至少包含一个特殊字符。

-s

生成安全随机的密码

-B

密码中不包含混淆的字符,例如“1”和“I”

-h

查看帮助信息

-H

使用指定文件sha1哈希生成,不适用随机生成

-C

按列打印生成的随机密码

-1

每行输出一个密码,不按列打印生成密码

-v

密码不包括元音字母或者可能被误认为是元音字母的数字

root@DB-Server:~# pwgen -h

Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]

Options supported by 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

root@DB-Server:~# pwgen -C

Xu3aiQuu choo2Aij ohCh3eip ou8ofeeL aYai5thi iet3eeNe ieth1Dei Mairah0o

gad9ooTh faBohZ6e ooJee3Oo Thiec4ah ahb1Iedi Sah7ahth Kainee4o beew7EeW

EedoHa1B eom3Aiph daigee2I AoG4Gei8 Siejoo9o Eemahk6a erur1Aim ohbu6Thi

ae0Ohbai Ehai9go0 ni0iYe4k Ais0eedo Ki3Aiku4 cue7AeXi Ao3lae5o oot2ahTh

yiev2Lei iNgeeth5 aeBi1sai quahh0Ei wei3aeP5 Bohng8ae Eecuor5i kie1eiTh

hiepa7Th uchaiTh5 eiX5Echi reiR4ele RaWaic5l Ahk6fae1 eiD5aen2 saep4Voh

irea6Quo Iakoh7pi eiPhoo1o pie9NeiR aj2Thied Mi3shugh oingi8Oo Vohthoo3

eph6Eed1 Ibooc3ux wo5TaPha Ceigh8aH eeX7ae6r aeB1phoo zohquo9H ahPhaig5

daenu0Ue qui2Feph queT5wo7 fooquo1M Vei4ceej Nie3nae2 IpahLa7e Ku6ahbuf

Oong2ye8 eiJ2haej ohChie4i oowah4Oz utaiM8Sh hah3Oong ieQu1pai aewai8Mi

waip3Aiz Hi0se4ai boon0AZi iR0eicee theeTh5n aeFo4air Tah7teef Aogh3Quo

Iya6eigo ie9Heegh aeyoh9Bo eiXoos4z YeZ7obai doosei4W sapeeBe8 ood1CahC

ie5ohF1s Goonoob2 aiy9Wu7W Oeh3sa5v EiTh9vai iyahs1Fu she5Oogi kohsha7E

Deeleit4 eibie0Th ou4Deihi Pai0oluk Vae6baih Doocee5e ahD2iex3 eil9aiRu

zeiNou0C uu4baiRi ahx2Eew2 Ashai0Ee Yae0aita paph4Air Ich4nei4 Mooph1Ch

eZ0AiTha Hoo8gaeh aiTha3Ga Quaif7ei Iel9oafu Cai0iD2u EeCuL0qu oochae0A

vuk1She4 Bai3Ohte aiChah9v Mohz7iYo zaeyoo8J xah4ohHi ohZ1ohw6 Eed0aeKo

tooQu3ar eiH8rata wiech2UB noMooch6 ahv8Boo3 zea2Gei4 oaM4Eile Cier9ieV

baeReef9 Iom2the0 Foe3ieza zaiNgat4 do1Bah7R ATuyom2u EeQu1lie chaeXo2j

eiza0Aed Leimuol0 eid5yu5C ahp4ahTu OobieSh2 Av8Iaxoh yeid0Eej gooR1aeY

root@DB-Server:~# pwgen -1

au9ni2Fa

生成一个10个长度包含大小字母,数字、特殊字符的密码:

root@DB-Server:~# pwgen -1cny 10

The9ciep#a

生成12个密码长度为10,并且至少包含一个特殊字符、数字、大写字母的密码

root@DB-Server:~# pwgen -cy -1 -n 10 12

cahw]ie7uG

nie1OoKo-u

Anguu4Iu!N

hie%m2ojeH

be7Wo{w:ah

Ee^quaif2u

lo{Ngia1ce

AeToh"D7Ah

ieS5Cho=ch

Lu4seey

Si>oR.aiH6

eo;l6Fie1m

当然还有一些其它密码生成工具,例如makepasswd、passwordmaker-cli 。个人觉得工具的掌握在精不在多,熟练掌握一两款工具即可。网上有篇用Linux命令行生成随机密码的十种方法, 里面介绍了很多种生成密码的工具和方法,只是有些命令和方法非常不实用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

生成linux命令,详解Linux下随机生成密码的命令总结相关推荐

  1. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

  2. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  3. linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...

    在linux中对文件的复制删除移动分别会使用到rm,mv,cp三个命令,下面我来给大家介绍一下rm,mv,cp命令对文件的常规操作吧, 先看实例 删除复制移动文件命令 Linux代码 rm -rf / ...

  4. 网络安全nmap扫描端口命令详解linux网络探测

    简介: nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管理员必用的 ...

  5. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

  6. linux下awk命令详解,Linux文件处理awk命令-linux awk命令详解-嗨客网

    Linux文件处理awk命令详解教程 Linux awk命令说明 awk 是一个强大的文本分析工具,相对于 awk 有 3 个不同版本: awk.nawk 和 gawk,未作特别说明,一般指 gawk ...

  7. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

  8. linux下的arp刷新命令详解,linux arp 命令常用参数详解

    linux arp 命令常用参数详解 linux arp 命令常用参数详解 显示和修改地址解析协议(ARP)使用的"IP 到物理"地址转换表. ARP -s inet_addr e ...

  9. linux的vi命令详解,Linux上Vi命令详解

    Linux下Vi命令详解 补充一点:在vi中使用命令的方法是:冒号+命令+回车,如:q 回车代表退出.================================================= ...

  10. linux sed.写文件,Linux文件处理sed命令-linux sed命令详解-linux sed写入文件-嗨客网

    Linux文件处理sed命令详解教程 Linux sed命令使用 Linux sed 命令处理时,把当前处理的行存储在临时缓冲区中,称为 "模式空间"( oattern space ...

最新文章

  1. ACCP7.0-S2-复习自测-15测试分析
  2. Team Work(CF 932 E)[bzoj5093][Lydsy1711月赛]图的价值
  3. WPF: 使用CommandManager.InvalidateRequerySuggested手动更新Command状态
  4. 函数二的变量作用域,多函数执行,返回值,函数参数,拆包,引用
  5. 细说HTTP中POST与GET的区别与联系
  6. 微信退款异步通知解密异常-填充无效,无法被移除
  7. Cannot set property 'onclick' of null报错
  8. Atitit 音频技术简史艾提拉著 目录 1. 2014年1月16日,谷歌发布音乐时间轴 2 2. 时代发展 2 2.1. 机械录音 电声录音时代 四.数码录音时代 2 3. 【音频录音技术】 2
  9. 用python做计算器(超级版)
  10. java 答题卡_·(B卷)Java期末试卷及答题卡(2005-2006第二学期).doc
  11. Ubuntu18.04美化桌面
  12. 超级玛丽 Super Mario java基础小游戏:基于JAVA面向对象实现的超级马里奥(Super Mario)游戏(简单小游戏,仅仅使用Java面向对象基础实现(附上源码))
  13. 计算机发邮件试题,计算机考试题库:计算机网络模拟练习题(4)
  14. js 跳转到指定位置 高德地图_JS引入高德地图定位
  15. Compression-Expansion Coding Improvements in MLC/TLC NVM论文解读
  16. vue中集成的ui组件库_Vue组件可使用Vault Flow通过Braintree集成PayPal付款
  17. 基于Python3.6实现Java版murmurhash算法
  18. 数字图像处理之拉普拉斯算子
  19. java项目内存分析jmap命令+MAT工具
  20. java与python之间的混合开发

热门文章

  1. 精简我们的apk的方法
  2. 锐捷交换机删除vlan
  3. 【剑指Offer】最小的k个数---大顶堆 Java
  4. 没有植入的内容就是TM在逗我
  5. 【教程】【技术向】将博客批量导出为markdown或html格式
  6. java dsa算法_DSA算法
  7. 永磁同步电机矢量控制中的双闭环是什么意思_电机控制发展方向
  8. 华为云服务器无数据盘也可以使用(数据盘非系统盘)
  9. 计算机丢失quartz.dll什么意思,电脑系统提示没有找到quartz.dll该怎么办
  10. win10下安装cuda和cudnn