SSSD过程不会死亡

感谢您花时间检查我的问题。

我目前正在处理一个以前只出现过一次的问题。 早在1月3日,当第一次出现,我们能够重新启动服务器,一切都很好,但现在又回来了。 这是一个生产数据库系统,所以find一个重启的窗口有时可能很困难。 我希望能够牢牢把握这次实际发生的事情,然后再在几天内重新启动,为这个问题提供另一个临时解决scheme。 开始了…

相关系统的用户身份validation通过Red Hat Directory Server 9通过LDAP进行处理。下面描述的问题只能在这台服务器上看到,即使是对应的共享数据库也不会显示相同的症状。 截至目前,没有LDAP帐户能够validation和login到服务器。 SSSD正在处理LDAPauthentication,目前无法停止或重新启动。 尝试执行SSH控制台无法响应时。 (ctrl-c无法退出发出的命令)

PS显示了通常的sssd相关进程正在运行,但试图kill -9他们似乎并没有成功阻止他们中的任何一个。

 ps aux | grep sss | grep -v grep root 1150 0.0 0.0 150828 2908 ? D 09:05 0:00 /usr/libexec/sssd/sssd_nss -d 0 --debug-to-files root 7025 0.0 0.0 93616 2504 pts/2 D 16:18 0:00 /usr/sbin/sssd -f -D root 11148 0.0 0.0 179436 5672 ? D Jan08 16:22 /usr/libexec/sssd/sssd_be -d 0 --debug-to-files --domain default root 32700 0.0 0.0 150784 2908 ? D 10:10 0:00 /usr/libexec/sssd/sssd_pam -d 0 --debug-to-files 

使用strace getent -s sss passwd我可以看到一些连接尝试正在被拒绝,但是我不确定如何处理它们。

 connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED (Connection refused) close(3) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 3 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED (Connection refused) close(3) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 3 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED (Connection refused) 

检查lsof | head -n1; lsof | grep /var/lib/sss/pipes/ lsof | head -n1; lsof | grep /var/lib/sss/pipes/ lsof | head -n1; lsof | grep /var/lib/sss/pipes/显示了好的和不好的系统之间的开放pipe道。 这些pipe道的PID是从ps aux报告的,所以尝试kill -9它们kill -9也是徒劳的。

不好的sssd

 lsof | head -n1; lsof | grep /var/lib/sss/pipes/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sssd_be 11148 root 15u unix 0xffff8806635911c0 0t0 31817638 /var/lib/sss/pipes/private/sbus-dp_default.11148 sssd_be 11148 root 16u unix 0xffff880d443d6180 0t0 31783555 /var/lib/sss/pipes/private/sbus-dp_default.11148 sssd_be 11148 root 17u unix 0xffff880c536d94c0 0t0 31783560 /var/lib/sss/pipes/private/sbus-dp_default.11148 

很好的sssd

 lsof | head -n1; lsof | grep /var/lib/sss/pipes/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sssd 26793 root 13u unix 0xffff88030b5d8c40 0t0 3248762734 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 14u unix 0xffff8808cc064bc0 0t0 3248762735 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 15u unix 0xffff880a9d9bc840 0t0 3248768164 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 16u unix 0xffff880040a32f00 0t0 3248768165 /var/lib/sss/pipes/private/sbus-monitor sssd_be 26794 root 15u unix 0xffff8808cc064200 0t0 3248767368 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_be 26794 root 16u unix 0xffff880a9d9bd880 0t0 3248763661 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_be 26794 root 17u unix 0xffff8809841b4480 0t0 3248763662 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_nss 26795 root 16u unix 0xffff880a9d9bd200 0t0 3248751954 /var/lib/sss/pipes/nss sssd_pam 26796 root 16u unix 0xffff880859e26180 0t0 3248774325 /var/lib/sss/pipes/pam sssd_pam 26796 root 17u unix 0xffff880859e27b80 0t0 3248774326 /var/lib/sss/pipes/private/pam 

另外,/ var / log / secure包含多个条目

 sshd[9177]: pam_succeed_if(sshd:auth): error retrieving information about user su: pam_sss(su-l:session): Request to sssd failed. Connection refuse crond[29568]: pam_sss(crond:session): Request to sssd failed. Connection refused 

另外,我注意到的第一件事情是/ var / log / messages文件不包含任何数据。 它和/ var / log / sssd / logs似乎已经在今天上午9:03左右停止了收集,/ var / log / secure保存了没有问题的数据。 重新启动系统日志修复了mesage的问题,但sssd日志仍然无法正常工作。

最后我注意到dmesg中充满了诸如audit: backlog limit exceeded消息audit: backlog limit exceeded audit: audit_backlog=322 > audit_backlog_limit=320audit_log_start: 122 callbacks suppressed 。 我认为这些都是从系统日志不能正常工作,但还没有validation。

我仍然在研究这个,希望我能find一些东西,但是欢迎任何人愿意提供的build议和反馈。

非常感谢!

-Omni

我遇到了pam_ldap和sssd在同一个系统上运行的问题。 如果你想停止与pam使用sssd你应该确保你运行:

 pam-config -a --ldap 

这将添加LDAP到PAM,然后运行:

 pam-config -d --sss 

这将删除/etc/pam.d/中与pam相关的configuration文件中的sssd设置

为了确保没有使用sss,你可能还想检查nsswitch.conf是否在正确的地方有ldap(或者至less没有sss)。 这是一个启用了sss的/etc/nsswitch.conf:

 # # /etc/nsswitch.conf # # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # # The entry '[NOTFOUND=return]' means that the search for an # entry should stop if the search in the previous entry turned # up nothing. Note that if the search failed due to some other reason # (like no NIS server responding) then the search continues with the # next entry. # # Legal entries are: # # compat Use compatibility setup # nisplus Use NIS+ (NIS version 3) # nis Use NIS (NIS version 2), also called YP # dns Use DNS (Domain Name Service) # files Use the local files # [NOTFOUND=return] Stop searching if not found so far # # For more information, please read the nsswitch.conf.5 manual page. # passwd: compat sss group: compat sss hosts: files mdns_minimal [NOTFOUND=return] dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files aliases: files passwd_compat: files group_compat: files 

该文件禁用了sss并启用了ldap:

 passwd: compat ldap group: compat ldap hosts: files mdns_minimal [NOTFOUND=return] dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files aliases: files passwd_compat: files group_compat: files