linux – SSSD进程不会死

前端之家收集整理的这篇文章主要介绍了linux – SSSD进程不会死前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
感谢您抽出宝贵时间查看我的问题.

我目前正在研究一个只出现过一次的问题.回到1月3日,当第一次出现时,我们能够重新启动服务器,一切似乎都很好,但现在又回来了.这是一个生产数据库系统,因此找到重启窗口有时会很困难.我希望能够牢牢掌握这次可能发生的事情,然后我们会在几天后重新启动,为问题提供另一个临时解决方案.开始了…

有问题的系统的用户身份验证通过红帽目录服务器9使用LDAP进行处理.下面描述的问题只能在这一台服务器上看到,即使是共享数据库的对应设备也不会显示相同的症状.截至目前,没有LDAP帐户能够进行身份验证并登录到服务器. SSHT正在处理LDAP身份验证,目前无法停止或重新启动.尝试执行任何操作时,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,110) = -1 ECONNREFUSED     (Connection refused)
close(3)                                = 0
socket(PF_FILE,110) = -1 ECONNREFUSED (Connection refused)

检查lsof |头-n1; lsof | grep / var / lib / sss / pipes /显示好坏系统之间的开放管道要少得多.这些管道的PID与ps aux报告的相同,因此在它们上尝试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保持累积数据没有问题.重新启动syslog修复了mesages的问题,但是sssd日志仍然无法运行.

最后我发现dmesg充满了审计等消息:backlog limit exceeded audit audit:audit_backlog = 322> audit_backlog_limit = 320和audit_log_start:122个回调被抑制.我假设这些是从syslog无法正常工作的时候开始的,但尚未验证.

我还在研究这个问题,希望我能找到一些东西,但不仅仅是欢迎人们愿意提供的任何建议和反馈.

非常感谢!

-Omni

解决方法

我遇到了在同一系统上运行的pam_ldap和sssd的问题.如果你想停止使用带pam的sssd你应该确保你运行:
pam-config -a --ldap

这会将LDAP添加到pam然后运行:

pam-config -d --sss

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

为了确保不使用sss,您可能还需要检查nsswitch.conf是否在正确的位置具有ldap(或者至少没有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

猜你在找的Linux相关文章