将服务器转换为使用 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
处理会话。