mkpasswd选项不兼容:文档与-h输出冲突(Ubuntu 20.04)
解决Ubuntu 20.04下mkpasswd 5.5.13版本的参数问题
问题说明
在Ubuntu 20.04 Jammy中使用版本5.5.13的mkpasswd时,执行mkpasswd -l 20会报错:
mkpasswd: invalid option -- 'l'
查看mkpasswd --help后发现确实没有-l选项,且默认生成的哈希密码串过长,例如:$y$j9T$Je4cWPmmj4udd1aJGKtXf.$y1hdeGItunpxDe3LTqa2Q6J15GnZeaXpiGlUOqs.bf9
原因
这个版本的mkpasswd属于whois软件包,与部分文档中提到的shadow-utils包内的mkpasswd参数不同:
- 旧版或其他发行版的mkpasswd用
-l指定密码长度,但此版本需用大写-L - 默认使用yescrypt哈希算法,生成的字符串包含salt和哈希值,因此长度较长
解决方案
- 指定明文密码长度:如果需要生成指定长度的明文密码并输出对应哈希串,使用
-L参数:mkpasswd -L 20 - 生成短哈希串:若希望哈希串更短,可更换哈希算法(如SHA-512):
mkpasswd -L 20 -m sha-512 - 仅生成明文密码:如果只需要明文密码(不生成哈希),使用
-m plain参数:mkpasswd -L 20 -m plain
内容的提问来源于stack exchange,提问作者jeffschips
相关产品推荐
相关产品推荐

