不幸的是,我从事Linux管理已有很短的时间了,但我仍然不知道在哪里可以找到Linux密码允许使用的字符的完整列表。我的猜测是,这可能是因为根据配置不同,不同系统上的配置可能会有所不同,例如:passwd文件与Open LDAP。使用authz / passwd / shadow文件时,是否有允许的Linux凭据的完整列表?
不幸的是,我从事Linux管理已有很短的时间了,但我仍然不知道在哪里可以找到Linux密码允许使用的字符的完整列表。我的猜测是,这可能是因为根据配置不同,不同系统上的配置可能会有所不同,例如:passwd文件与Open LDAP。使用authz / passwd / shadow文件时,是否有允许的Linux凭据的完整列表?
Answers:
您可以使用标准的Unix密码键入任何内容,这是公平的游戏-我不知道任何特定于Linux的限制。请注意,换行符(Return / Enter)通常会终止密码输入,因此您在键盘上看到的任何字符都是公平的游戏。
还允许使用特殊键(箭头键,功能键,向上翻页/向下翻页),以及一些您无法键入的内容(如果需要,可以继续在密码中放置一个垂直选项卡-这只是为了除非您可以剪切并粘贴字符,否则使用它非常不便)。
请注意,尽管这些键/字符在网络连接上的工作方式可能与在控制台上不同,但通常不会出于这个原因使用它们。
我知道的一个“特殊情况”是,一个NUL
字符(ASCII 0)可能会解释为“字符串结束”,并且此后密码中的所有内容都可能会被丢弃。
如果您可以提供Linux发行版,它将有所帮助。可以针对每个系统进行定义,并且如您所正确指出的那样,可以在其中定义诸如LDAP之类的内容。
如果使用pam_cracklib(8),则在
/etc/pam.d/system-auth
Red Hat / CentOS / Fedora系统上定义。如果定义,您应该看到类似以下内容的内容:
password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1
在Ubuntu系统上,该文件位于/etc/pam.d/common-password
。参见/ubuntu/156850/setting-minimum-password-requirements
How do you set requirements for (stronger) passwords?
(复杂性,长度等)。它似乎没有回答上面的问题(What characters may I use in a password?
)
只需坚持使用95个ASCII可打印字符作为Linux密码,就可以了。
在LDAP树中,模式负责信息约束。您应该研究特定于实现的模式。
[
例如,也许终端仿真器接受启动控制序列,或者编写不当的Web应用程序读取不正确\
。当我生成初始密码以供以前的雇主的应用程序帐户使用时,我将非字母数字集限制为仅几个已知可在我们所有应用程序中使用的字符,因为我们雇用了一些非常糟糕的开发人员并真正购买了多年以来的垃圾软件。