我是 SSSD 的新手,但我认为我已经正确配置了它,因为它id {ldap user}
返回了多个测试用户的预期 uid 和 gid 值。我使用两台 CentOS 6.4 服务器作为测试机器。一台运行 ApacheDS,另一台运行 SSSD。但是,当我尝试使用其中任何一个用户通过 ssh 或直接在控制台上登录时,我被拒绝访问。我花了几天时间仔细研究 SSSD 日志,但我不知道还能在哪里查看。我不会包含所有配置文件,现在我只想说我authconfig --enablesssd --enablesssdauth --enablelocauthorize --update
在客户端服务器上运行了以下内容。查看下面的 SSSD 配置和这里用于 SSSD_Default 日志。请告诉我您希望查看哪些其他日志,我会尽快提取它们。
感谢您的帮助!
猫/etc/sssd/sssd.conf [sssd] 配置文件版本 = 2 服务 = nss,pam 域 = 默认 调试级别 = 4 [国家安全局] filter_users = root 调试级别 = 4 [帕姆] 调试级别 = 4 [域/默认] 调试级别 = 4 ldap_tls_reqcert = 从不 auth_provider = ldap ldap_schema = rfc2307 ldap_search_base = dc=示例,dc=网络 #ldap_group_member = memberUid id_provider = ldap ldap_id_use_start_tls = True chpass_provider = ldap ldap_uri = ldap://sea-ldap-01.app.example.net:10389 缓存凭据 = False ldap_tls_cacertdir = /etc/openldap/certs ldap_tls_cacert = /etc/openldap/certs/sea-ldap-01.pem entry_cache_timeout = 600 ldap_network_timeout = 3 #ldap_access_filter = ldap_user_search_base = ou=people,dc=example,dc=net ldap_group_search_base = ou=组,dc=示例,dc=网络
答案1
根据该日志,SSSD 的 LDAP 提供程序似乎崩溃了,必须重新启动。这就是您被拒绝访问的原因。
具体参见:
(Fri Jun 21 22:42:46 2013) [sssd[be[default]]] [sdap_process_message] (0x4000): Message type: [LDAP_RES_BIND]
(Fri Jun 21 22:42:46 2013) [sssd[be[default]]] [simple_bind_done] (0x2000): Server returned control [1.3.6.1.4.1.42.2.27.8.5.1].
然后它进入
(Fri Jun 21 22:42:46 2013) [sssd[be[default]]] [server_setup] (0x0400): CONFDB: /var/lib/sss/db/config.ldb
(Fri Jun 21 22:42:46 2013) [sssd[be[default]]] [recreate_ares_channel] (0x0100): Initializing new c-ares channel
(Fri Jun 21 22:42:46 2013) [sssd[be[default]]] [resolv_get_family_order] (0x1000): Lookup order: ipv4_first
这些行表明服务器正在重新启动。我猜想可能是在客户端上处理 ldap 密码策略时出了问题,因为崩溃前最后一件事是对 ldap_pwd_exop 的 LDAP 代码的引用。
检查 /var/log/messages 以查找崩溃迹象并向 CentOS 提交错误报告。理想情况下,安装 sssd、openldap 和 ding-libs 软件包的 debuginfo,然后使用 gdb 附加到 sssd_be 进程并获取崩溃的回溯以包含在错误报告中。