系統授權

系統授權

我正在使用 Fedora 19。默认情况下,pam 设置为禁用不良密码,例如“password”。这很好。尝试更改此默认设置令人恼火。这是一个用于测试内部东西的盒子,没有连接到互联网,也没有连接任何机器。糟糕的密码会促进测试过程。或者,你到底如何改变密码要求?

系統授權

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

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

验证配置

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

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

什么鬼?让我们man authconfig仔细看看。哦!看起来那个文件不是通过 authconfig,它是已更改。那么……您如何配置 authconfig?手册建议system-config-authentication,我安装了它,但没有提供任何类似于复选框来禁用 pam_pwquality 的东西。手册中的下一个建议是命令行选项。太棒了!我喜欢命令行工具。只是,没有一个记录的命令行选项可以禁用 pam_pwquality。

密码质量配置文件

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

答案1

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

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

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...
    

    首先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)
    

总结:对于未被覆盖(或无法覆盖)的选项,设置取自当前配置包括标记为自动生成的文件。为了使其工作,编辑/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)

您必须选择两种质量控制实施方法之一,否则将为您选择一种!结合第一个错误,这使得禁用它变得不可能。

答案2

您可以手动控制system-auth文件。创建一个新文件(您可以通过复制来开始system-auth-ac),然后更改system-auth符号链接以指向新文件。

这使得您有责任更新 PAM 配置的这一部分,因为 authconfig 将不再触及符号链接或它指向的文件。但是,authconfig 仍将更新该system-auth-ac文件,因此您可以继续将其用作参考(如果需要)。如果聪明的话,您甚至可以将其添加include到本地副本中,但如何做到这一点超出了这个问题的范围。

您还应该检查其他符号链接,例如password-auth。您可能需要对它们进行相同的处理。


authconfig(8)手册页中Files

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

因此,如果system-auth是文件,则 authconfig 会将其更改为链接到system-auth-ac。但如果system-auth是符号链接,则 authconfig 会保留它。

答案3

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

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

答案4

我刚刚根据相关搜索找到了这个问题,我想我可以给你一个答案。

Fedora 创建指向 authconfig 生成的文件的符号链接。即 system-auth指向 的链接system-auth-ac。如果您创建system-auth自己的文件,那么理论上将来所做的任何更改auth-config仍将更新system-auth-ac,但您修改的文件保持不变。

它实际上非常优雅,但我只是在好奇这些*-ac文件的作用时才发现它。

相关内容