允许的 Linux 密码字符列表

允许的 Linux 密码字符列表

遗憾的是,我从事 Linux 管理工作才一小段时间,但我仍然不知道在哪里可以找到 Linux 密码允许字符的完整列表。我猜这可能是因为不同系统上的配置可能因配置而异,例如:passwd 文件与 Open LDAP。使用 authz/passwd/shadow 文件时,是否有允许的 Linux 凭据的完整列表?

答案1

在标准 Unix 密码中,您可以输入的任何内容都是可以接受的 - 我不知道 Linux 有任何特定的限制。但要注意的是,换行符(Return/Enter)通常用于结束密码输入,您在键盘上看到的任何字符都可以接受。

还允许使用特殊键(箭头键、功能键、向上翻页/向下翻页),以及一些您无法输入的内容(如果您愿意,您可以继续在密码中输入垂直制表符 - 除非您可以剪切和粘贴字符,否则使用它登录会非常不方便)。
请注意,这些键/字符在网络连接上的工作方式可能与在控制台上不同 - 通常不会出于这个原因使用它们。


我知道的一个“特殊情况”是,一个NUL字符(ASCII 0)可能会被解释为“字符串结尾”,并且密码中此后的任何内容都可能会被丢弃。

答案2

如果您可以提供您的 Linux 发行版,这将很有帮助。这可以根据系统进行定义,正如您正确指出的那样,如果有 LDAP 之类的东西,则可以在那里进行定义。

如果使用pam_cracklib(8),这在 Red Hat/CentOS/Fedora 系统中定义 /etc/pam.d/system-auth。如果已定义,您应该会看到类似以下内容:

password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1

在 Ubuntu 系统上,它位于 下/etc/pam.d/common-password。请参阅https://askubuntu.com/questions/156850/setting-minimum-password-requirements

答案3

只要坚持ASCII 中的 95 个可打印字符对于 Linux 密码,你应该没问题。

在 LDAP 树中架构负责信息约束。您应该研究您的实现特定模式。

相关内容