system-auth 和password-auth 中的pam_systemd.so 行来自哪里?

system-auth 和password-auth 中的pam_systemd.so 行来自哪里?

将服务器转换为使用 SSSD 进行身份验证后,以下行会在通过 SSH 连接到服务器时导致很长时间(10-20 秒)挂起/etc/pam.d/system-auth/etc/pam.d/password-auth

-session     optional      pam_systemd.so

删除这一行修复了挂起,但当然,每当authconfig --update --enablesssd运行时,它都会使用该行重新生成这些文件。

如何防止生成这条线?又是什么原因导致它产生呢?删除/etc/systemd/logind.conf并重新运行后它仍然存在authconfig...

似乎 , system-auth,password-auth的手册页pam_systemd没有任何有用的信息,但也许这只是我的看法

答案1

可以使用 调用相关手册页man authconfig

在 EL 变体中,配置文件是/etc/sysconfig/authconfig,但文档没有指定 的任何设置systemd。在 CentOS7/RHEL7 上,authconfig是文件 /usr/share/authconfig/authconfig.py.

command -v authconfig
ls -l /usr/bin/authconfig

/usr/share/authconfig该文件中,authinfo.py包含对 的引用systemd

cd /usr/share/authconfig
grep systemd *

在该文件中,有许多定义“堆栈”的数组。特别是,有一个为会话指定的数组。人们可能会改变这个值真的错误的然后测试更改是否达到了预期的效果;但是,我认为这个文件可能会在更新时被覆盖。

[True, SESSION, LOGIC_OPTIONAL, "systemd", []]

可以编写脚本删除配置行,而不是authconfig直接调用。

#!/usr/bin/env bash
# 
# File: /usr/local/sbin/enable_sssd.sh
#
authconfig --update --enablesssd
sed -ie "/-session[[:space:]]\+optional[[:space:]]\+pam_systemd.so/d" /etc/pam.d/system-auth
sed -ie "/-session[[:space:]]\+optional[[:space:]]\+pam_systemd.so/d" /etc/pam.d/password-auth

PAM 会话软件创建和销毁登录会话。因此,PAM 会话处理程序会执行诸如修改utmp、设置环境、存储 Kerberos 票证等操作。但是,您还应该必须session sufficient pam_sss.so处理会话。

相关内容