AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 773725
Accepted
biochem_fan
biochem_fan
Asked: 2024-04-03 16:14:07 +0800 CST2024-04-03 16:14:07 +0800 CST 2024-04-03 16:14:07 +0800 CST

即使启用了 LDAP,为什么 pam_unix.so 仍设置为“必需”?

  • 772

在我的 Rocky Linux 9.3 机器上,LDAP 身份验证已启用authselect并且工作正常。我可以通过本地帐户和仅限 LDAP 的帐户通过 ssh 登录到这台计算机。然而,/etc/pam.d/password-auth包含在 中的my/etc/pam.d/sshd 似乎与当前的行为相矛盾。它包含了:

account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so
account     sufficient                                   pam_usertype.so issystem
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required                                     pam_permit.so

仅 LDAP 帐户会失败pam_unix.so(不是吗?)。因为pam_unix.so是required,在我看来,仅 LDAP 帐户将无法通过整个account测试(即使pam_sss.so成功)。然而,仅 LDAP 帐户在现实中确实有效。为什么?

man pam.conf说:

必需:此类 PAM 的失败最终将导致 PAM-API 返回失败

足够:如果此类模块成功并且先前所需的模块没有失败,则PAM 框架将成功返回给应用程序

好的:这告诉 PAM 管理员认为此返回代码应该直接影响整个模块堆栈的返回代码。换句话说,如果堆栈的先前状态将导致返回 PAM_SUCCESS,则模块的返回代码将覆盖该值。请注意,如果堆栈的先前状态保存了某个指示模块故障的值,则此“ok”值将不会用于覆盖该值。 (我强调的)

同样在另一个问题中,required pam_unix.so引起了一个问题(正如我所期望的)。

为什么我的系统可以工作?

pam
  • 1 1 个回答
  • 152 Views

1 个回答

  • Voted
  1. Best Answer
    muru
    2024-04-03T16:29:25+08:002024-04-03T16:29:25+08:00

    注意,这个为account,不是auth。对于account组件来说man pam_unix:

    The account component performs the task of establishing the status of the user's account
    and password based on the following shadow elements: expire, last_change, max_change,
    min_change, warn_change. In the case of the latter, it may offer advice to the user on
    changing their password or, through the PAM_AUTHTOKEN_REQD return, delay giving service to
    the user until they have established a new password. The entries listed above are
    documented in the shadow(5) manual page. Should the user's record not contain one or more
    of these entries, the corresponding shadow check is not performed.
    

    除非您的(本地)密码过期,否则它不会阻止您登录。

    另外,在另一个问题中,required pam_unix.so 引起了问题(正如我所料)。

    事实上,并不像你想象的那样。检查已接受的答案,该答案来自该问题的OP:

    [问题]是,由于 pam 身份验证以级联方式工作,因此如果您已经拥有本地帐户,则没有理由继续使用帐户服务。所以第一行(pam_unix.so)足以进行身份​​验证。以前,堆栈还会检查 pam_ldap.so,因为所有三行都需要登录,如果 ldap 服务关闭或无法访问,身份验证堆栈就会中断。

    他们的问题不在于pam_unix.so被要求造成的问题。pam_ldap当 LDAP 服务出现故障时,堆栈的更底层就会出现问题。如果成功,则使用sufficient而不是required允许他们跳过。正如评论中这个问题的OP所验证的那样,确实会返回非本地用户,因此Stack Overflow问题的OP似乎已经设置了一个对于非本地用户总是(毫无意义)成功的配置。正确的方法似乎是像这个问题一样使用。pam_ldappam_unixpam_unixPAM_SUCCESSpam_localuser

    • 3

相关问题

  • /etc/pam.d/system-auth 中的这条规则有什么作用?

  • PAM:身份验证失败,密码有效

  • 了解 PAM 和 PAM 感知守护程序之间的通信

  • LDAP 和 PAM 用于 GUI 登录但不适用于 SSH

  • PAM Ke​​rberos 和 RStudio

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve