如何禁用或修改 pam 的密码要求?

dje*_*kyb 9 linux fedora passwords pam

我正在使用 Fedora 19。默认情况下,它使用 pam 进行设置以禁用错误密码,例如“密码”。这很好。试图更改此默认设置令人气愤。这是一个用于测试内部东西的盒子,没有连接到互联网,也没有连接到任何机器。错误的密码有助于测试过程。或者,你到底是怎么改变密码要求的??

系统认证

man pam_cracklib有一些很好的例子来设置不同的密码要求。所以我打开/etc/pam.d/system-auth,在那里你会看到如下几行:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so
Run Code Online (Sandbox Code Playgroud)

*办公桌*。根据我的经验,这样的警告意味着每次包管理器运行和/或随机运行时,您的更改都会被擦除。

验证配置

所以……authconfig是下一步。我查找所有名为“authconfig”的文件。/etc/sysconfig/authconfig看起来很有希望。而且,顶部没有关于一时兴起破坏我的编辑的警告。我找到这条线USEPWQUALITY=yes并改变它。现在我运行:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>
Run Code Online (Sandbox Code Playgroud)

卧槽 所以让我们man authconfig仔细阅读一下。哦!看起来authconfig没有读取该文件,它已更改。那么....你如何配置authconfig?手册建议system-config-authentication,我安装它并且不提供任何类似于禁用 pam_pwquality 的复选框的东西。手册中的下一个建议是命令行选项。伟大的!我喜欢命令行工具。只是,没有记录的命令行选项禁用 pam_pwquality。

配置文件

感谢 Aaron 的回答,我了解到几年前 Fedora 决定创建配置密码质量要求/etc/security/pwquality.conf 地方。不幸的是,如文件和 中所述man 5 pwquality.conf,(1) 无法禁用字典检查,(2) 不能将允许的密码长度设置为低于 6。

edd*_*eek 5

粗略浏览一下/usr/sbin/authconfig和中的源代码后/usr/share/authconfig/authinfo.py

  • 手册页不完整,脚本接受的选项的完整列表位于authconfig --help
  • 除了pwquality 本身之外,所有内容都可以在命令行上覆盖(甚至/etc/security/pwquality.conf是密码最小长度等设置) 。恕我直言,这是一个错误,应该报告。
  • authinfo.py第 2489 行和第 2156 行开始:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...
    
    Run Code Online (Sandbox Code Playgroud)

    首先readSysconfig阅读/etc/sysconfig/authconfig;然后你放在那里的内容会被readPAM里面的内容覆盖/etc/pam.d/*(特别password_auth*是 和system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)
    
    Run Code Online (Sandbox Code Playgroud)

TL;DR:对于未被覆盖(或不能被覆盖)的选项,设置取自当前配置,包括标记为 autogenerate 的文件。要使其正常工作,请编辑/etc/sysconfig/authconfig 删除显示的行grep -E pwq\|crack /etc/pam.d/*


编辑:还有第二个错误,这使得上面的建议仍然不起作用:第 2248 行:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)
Run Code Online (Sandbox Code Playgroud)

您必须在两种质量控制实施方式中选择一种,否则我们会为您选择一种!与第一个错误相结合,这使得它无法禁用。


小智 1

它看起来可以通过配置/etc/security/pwquality.conf

来源: https: //fedoraproject.org/wiki/Features/PasswordQualityChecking