Nsswitch — sudoers sss vs ldap, что мне не хватает

Я пытаюсь настроить nsswitch для использованияsudoers: files sssкоторый используется по умолчанию для системы rhel9, однако у меня это не работает, но следующееsudoers: files ldapдействительно работает.

Чего мне не хватает для работы SSSD?

Я могу успешно войти в экземпляры, используя свою учетную запись, однако мне даже не разрешено использовать sudosudoCommand: ALL

      $ ldapsearch -H ldap://ipa.example.com -b ou=sudoers,dc=example,dc=com -ZZ '(&(objectClass=sudoRole))' -x
# allow_all, sudoers, EXAMPLE.COM
dn: cn=allow_all,ou=sudoers,dc=EXAMPLE,dc=COM
objectClass: sudoRole
objectClass: top
sudoUser: %host-admin
sudoHost: ALL
sudoCommand: ALL
sudoRunAsUser: ALL
sudoRunAsGroup: ALL
cn: allow_all


$ id admin
uid=6666(admin),1234(host-admins)

sssd.conf

      [domain/default]
id_provider = ldap
auth_provider = ldap
sudo_provider = ldap
chpass_provider = ldap
ldap_uri = ldaps://ipa.example.com
ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = True
ldap_schema = rfc2307bis
ldap_sudo_include_regexp = true
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/certs
ldap_tls_reqcert = allow

[sssd]
services = nss, pam, sudo
domains = default

[nss]
homedir_substring = /home

[pam]

[sudo]
debug_level = 7

nsswitch.conf

      sudoers: files sss <--- Does not work

sudoers: files ldap <--- Does work

1 ответ

Я собираюсь догадаться об этомэто локальная группа на сервере, а не группа LDAP.

SSSD намеренно игнорирует записи «sudoers» LDAP, которые относятся к локальным группам хоста. Если я правильно помню, он принимает только записи, относящиеся к группам внутри одного «домена» SSSD.

Если вы хотите, чтобы у разных хостов были разные администраторы, вы можете вместо этого хранить имена авторизованных пользователей непосредственно в правиле sudoersLDAP (разделатрибут является многозначным), используячтобы ограничить роль определенным хостом (или набором хостов) и создать новую роль для каждого набора хостов, для которого нужен другой список администраторов.

В качестве альтернативы вы можете использовать сетевые группы в стиле NIS в LDAP (которые используютобъектный класс и содержать списоктройки), или вы можете полностью отказаться от LDAP и развернуть /etc/sudoers.d/ как обычный файл через Salt/Ansible (который затем может ссылаться на любую группу или сетевую группу NIS, известную nsswitch).

Другие вопросы по тегам