Redhat

sss_cache 一直在尋找 LOCAL 域,而不是清除 LDAP 記錄

  • February 2, 2022

我已將使用者添加到 LDAP 中的組。使用者出現在 ldapsearch 中。但是,當我使用getent group my_group.

我是否正確假設這是因為 SSSD 記憶體了組成員身份?

當我嘗試清除組的 SSSD 記憶體時,它什麼也沒做:

# sss_cache -d LDAP -g my_group
(Mon Dec 14 10:40:41:816191 2015) [sss_cache] [confdb_get_domain_internal] (0x0010): Unknown domain [LOCAL]
(Mon Dec 14 10:40:41:816364 2015) [sss_cache] [confdb_get_domains] (0x0010): Error (2 [No such file or directory]) retrieving domain [LOCAL], skipping!
# echo $?
0

具體來說,使用者仍然沒有出現在getent group my_group列表中。

當我在命令中指定“LDAP”域時,為什麼它在尋找“LOCAL”域?

這是 SSSD 配置

# cat /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = LOCAL,LDAP
debug_level = 5

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2
offline_failed_login_attempts = 3
offline_failed_login_delay = 5

[domain/LDAP]
cache_credentials = true

id_provider = ldap
auth_provider = ldap

ldap_uri = ldaps://my_hostname.my_domain.com
ldap_search_base = dc=my_domain,dc=com
ldap_id_use_start_tls = true
ldap_tls_reqcert = never
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt

debug_level = 5
  1. 這是一個錯誤sss_cache嗎?
  2. 我應該rm -f /var/lib/sss/db/cache_LDAP.ldb改為嗎?
  3. 那個時候,我是不是應該cache_credentials = false進去sssd.conf
  1. 我不認為這是一個錯誤sss_cache,您的配置引用了一個名為 的域LOCAL,但該域未定義。剛下線再試一次LOCAL..domains
  2. 那是不同的。sss_cache通過將過期時間戳設置為過去來工作。這會強制下次查找,但不會完全刪除條目,因此在客戶端離線的情況下它們仍然存在
  3. 這實際上取決於您是否希望在與伺服器的連接失去時允許您的使用者登錄。

引用自:https://serverfault.com/questions/742965