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


9

我正在使用Fedora19。默认情况下,它使用pam进行设置以禁用错误的密码,例如“ password”。很好 尝试更改此默认设置真令人生气。这是一个用于测试内部内容的框,这些内容没有连接到Internet,也没有连接到任何计算机。错误的密码会简化测试过程。另外,您到底如何更改密码要求?

系统验证

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

*总部*。以我的经验,这样的警告意味着每次运行包管理器和/或随机运行包管理器时,您所做的更改都会被擦除。

认证配置

所以... authconfig是下一步。我寻找所有名为“ authconfig”的文件。/etc/sysconfig/authconfig看起来很有希望。而且,在顶部没有关于立即删除我的编辑的警告。我找到这行USEPWQUALITY=yes并进行更改。现在我运行:

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

wtf。因此,让我们man authconfig仔细阅读一下。哦! 看来authconfig 无法读取该文件,它已更改。所以....如何配置authconfig?该手册建议system-config-authentication,我安装了该手册,但未提供类似于禁用pam_pwquality复选框的内容。手册中的下一个建议是命令行选项。大!我喜欢命令行工具。仅,没有记录在案的命令行选项禁用pam_pwquality。

pwquality.conf

多亏了Aaron的回答,我才知道几年前fedora决定在/etc/security/pwquality.conf 场所配置密码质量要求。不幸的是,如文件和中所述man 5 pwquality.conf,(1)无法禁用字典检查,(2)不能将允许的密码长度设置为6以下。


如果是内部原因,为什么要安装甚至启用Pam?
Ramhound

1
@Ramhound,因为fedora充满了pam。yum remove pam据我所知,滚动所有依赖包所需的时间将删除所有内容。包括yum和systemd。此外,当我认为我只想使用砂纸时,禁用pam感觉就像是大锤。
djeikyb

Answers:


4

后在源代码中的走马看/usr/sbin/authconfig/usr/share/authconfig/authinfo.py

  • 手册页不完整,脚本接受的选项的完整列表在 authconfig --help
  • pwquality本身/etc/security/pwquality.conf,所有内容都可以在命令行上覆盖(甚至包括密码最小长度设置)。恕我直言,这是一个错误,应该报告。
  • authinfo.py2489和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)

TL; DR:对于未被覆盖(或不能被覆盖)的选项,设置将从当前配置中获取,包括带有自动标记标签的文件。要使其正常工作,请编辑/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年后,在fedora 26 alpha上,情况保持不变
eddygeek

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会将其保留。


1

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

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


谢谢,我还没有看到。不幸的是,pwquality.conf不支持禁用字典检查或禁用密码长度检查。
djeikyb

也许这篇文章中的建议行得通吗?serverfault.com/questions/444258/…–
亚伦·冈野

即从系统身份验证中删除该模块,并设置USEPWQUALITY = no,然后运行authconfig --update。
亚伦·冈野

不幸的是(如问题中所述),运行会authconfig --updateall重置文件。我对这个答案非常困惑,因为它与我观察到的行为直接矛盾。
djeikyb

我还应该注意,即使在运行authconfig之前,仅设置USEPWQUALITY=no和/或USECRACKLIB=no也不能解决我的问题。
djeikyb

1

您仍然可以从命令行更改。您会收到一条警告,但是它将使您设置的密码太短,以及不符合复杂性规则的密码。


这绝对不是在Fedora 19的行为我的经验
djeikyb

@djeikyb以超级用户身份运行passwd <username>命令(使用root终端sudo passwd <username>或之后)。– su -
Nick

@Nick不会禁用或修改pam的密码要求。
djeikyb

@djeikyb不会更改要求,但会绕过它。当您passwd以root用户身份运行时,它将忽略密码策略。如果您只需要设置一次而忘记它,那么它将起作用。如果您试图进行设置,以便每个用户都可以自由更改其密码,那么您需要另一个解决方案。
尼克,

@尼克我明白了。是的,root可以在passwd不被pam锁定的情况下使用。与实际问题无关,但确实使“答案”中的要求成立。
djeikyb

0

我只是根据相关搜索发现了这个问题,我想我有一个答案。

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

它实际上非常优雅,但是我只是在想知道*-ac文件的功能时才发现它。


这行不通。的下一次运行authconfig(例如authconfig --updateall)将删除您的文件,并将其符号链接回该-ac文件。
docwhat

@TheDoctor那是什么?现在,我也没有任何意义,如果他们不允许以易于回退到托管配置的方式保留本地更改,为什么他们会那样做。那好吧。
飓风

是的,它也使我感到困惑……文档中没有谈论它,并且源代码甚至还有很长的注释,解释了他们如何试图将所有人变成所有人……非常烦人。
docwhat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.