Справка по SSSD sssd-sudo 5 Форматы файлов и рекомендации sssd-sudo Настройка sudo с помощью внутреннего сервера SSSD ОПИСАНИЕ На этой справочной странице представлено описание настройки sudo 8 для работы с sssd 8 , а также кэширования правил sudo в SSSD. Настройка sudo для совместной работы с SSSD Чтобы включить SSSD как источник правил sudo, добавьте sss в запись sudoers в файле nsswitch.conf 5 . Например, чтобы настроить sudo на поиск правил сначала в стандартном файле sudoers 5 (который должен содержать правила, которые применяются к локальным пользователям), а потом в SSSD, следует добавить в файл nsswitch.conf следующую строку: sudoers: files sss Дополнительные сведения о настройке порядка поиска sudoers из файла nsswitch.conf, а также информация о схеме LDAP, используемой для сохранения правил sudo в каталоге, доступны на справочной странице sudoers.ldap 5 . Примечание: чтобы использовать в правилах sudo сетевые группы или группы узлов IPA, также потребуется корректно установить nisdomainname 1 в значение имени домена NIS (совпадает с именем домена IPA в случае использования групп узлов). Настройка SSSD для получения правил sudo На стороне SSSD достаточно расширить список служб добавлением «sudo» в раздел [sssd] sssd.conf 5 . Чтобы ускорить поиск LDAP, также можно указать базу поиска для правил sudo с помощью параметра ldap_sudo_search_base. В следующем примере показано, как настроить SSSD на загрузку правил sudo с сервера LDAP. [sssd] config_file_version = 2 services = nss, pam, sudo domains = EXAMPLE [domain/EXAMPLE] id_provider = ldap sudo_provider = ldap ldap_uri = ldap://example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=com Важно учитывать, что на платформах, где поддерживается systemd, не требуется добавлять поставщика данных «sudo» в список служб, так как он стал необязательным. Однако вместо этого следует включить sssd-sudo.socket. Когда программа SSSD настроена на использование IPA в качестве поставщика ID, включение поставщика данных sudo выполняется автоматически. База поиска sudo настроена на использование собственного дерева LDAP IPA (cn=sudo,$SUFFIX). Если в sssd.conf определена какая-либо другая база поиска, будет использоваться это значение. Дерево совместимости (ou=sudoers,$SUFFIX) больше не является необходимым для работы sudo IPA. Механизм кэширования правил SUDO При разработке поддержки sudo в SSSD сложнее всего было сделать так, чтобы работа sudo c SSSD в качестве источника данных обеспечивала такие же скорость и взаимодействие с пользователем, что и sudo, при этом предоставляя настолько актуальный набор правил, насколько это возможно. Для этого в SSSD используются три вида обновлений: полное обновление, интеллектуальное обновление и обновление правил. Интеллектуальное обновление периодически загружает правила, которые являются новыми или были изменены после последнего обновления. Основная задача — увеличивать базу данных путём получения небольших порций данных, что не создаёт большой сетевой трафик. Полное обновление просто удаляет все правила sudo, которые хранятся в кэше, и заменяет их всеми правилами, которые хранятся на сервере. Это позволяет поддерживать согласованность кэша: удаляются все те правила, которые были удалены с сервера. Однако полное обновление может генерировать большое количества трафика, поэтому его следует выполнять только иногда (промежуток между обновлениями зависит от размера и стабильности правил sudo). Обновление правил обеспечивает, что пользователю не будет предоставлено больше прав, чем определено. Это обновление выполняется при каждом запуске sudo пользователем. Обновление правил находит все правила, которые применяются к этому пользователю, проверяет срок их действия и повторно загружает их, если этот срок истёк. Если на сервере отсутствуют какие-либо из таких правил, SSSD выполнит общее полное обновление, так как могло быть удалено гораздо больше правил (применяемых к другим пользователям). Если этот параметр включён, SSSD будет сохранять только правила, которые могут быть применены к этому компьютеру. Это те правила, которые содержат в атрибуте sudoHost одно из следующих значений: ключевое слово ALL подстановочный знак сетевая группа (в виде «+netgroup») имя узла или полное доменное имя компьютера один из IP-адресов компьютера один из IP-адресов сети (в виде «address/mask») Предусмотрено много параметров, которыми можно воспользоваться для настройки поведения программы. Подробное описание доступно в разделах «ldap_sudo_*» sssd-ldap 5 и «sudo_*» sssd.conf 5 . Тонкая настройка производительности SSSD использует различные типы механизмов со сложными и простыми фильтрами LDAP для поддержания кэшированных правил sudo в актуальном состоянии. В стандартной конфигурации заданы значения, которые должны подойти большинству пользователей. Тем не менее, в последующих абзацах приводится несколько советов по тонкой настройке конфигурации. 1. Индексируйте атрибуты LDAP. Убедитесь, что выполняется индексирование следующих атрибутов LDAP: objectClass, cn, entryUSN и modifyTimestamp. 2. Задайте ldap_sudo_search_base. Укажите в качестве базы поиска контейнер, который содержит правила sudo, чтобы ограничить область поиска. 3. Задайте интервал полного и интеллектуального обновления. Если правила sudo меняются редко и не требуется быстро обновлять кэшированные правила на клиентах, можно увеличить значения ldap_sudo_full_refresh_interval и ldap_sudo_smart_refresh_interval. Также можно отключить интеллектуальное обновление: ldap_sudo_smart_refresh_interval = 0. 4. Если имеется большое количество клиентов, можно увеличить значение ldap_sudo_random_offset для лучшего распределения нагрузки на сервер.