'\" t
.\"     Title: sssd-sudo
.\"    Author: Восходящий источник (\(Foапстрим\(Fc) SSSD \(em https://github.com/SSSD/sssd/
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 12/17/2024
.\"    Manual: Форматы файлов и рекомендации
.\"    Source: SSSD
.\"  Language: English
.\"
.TH "SSSD\-SUDO" "5" "12/17/2024" "SSSD" "Форматы файлов и рекомендации"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
sssd-sudo \- Настройка sudo с помощью внутреннего сервера SSSD
.SH "ОПИСАНИЕ"
.PP
На этой справочной странице представлено описание настройки
\fBsudo\fR(8)
для работы с
\fBsssd\fR(8), а также кэширования правил sudo в SSSD\&.
.SH "Настройка SUDO для совместной работы с SSSD"
.PP
Чтобы включить SSSD как источник правил sudo, добавьте
\fIsss\fR
в запись
\fIsudoers\fR
в файле
\fBnsswitch.conf\fR(5)\&.
.PP
Например, чтобы настроить sudo на поиск правил сначала в стандартном файле
\fBsudoers\fR(5)
(который должен содержать правила, которые применяются к локальным пользователям), а потом в SSSD, следует добавить в файл nsswitch\&.conf следующую строку:
.PP
.if n \{\
.RS 4
.\}
.nf
sudoers: files sss
.fi
.if n \{\
.RE
.\}
.PP
Дополнительные сведения о настройке порядка поиска sudoers из файла nsswitch\&.conf, а также информация о схеме LDAP, используемой для сохранения правил sudo в каталоге, доступны на справочной странице
\fBsudoers.ldap\fR(5)\&.
.PP
\fIПримечание\fR: чтобы использовать в правилах sudo сетевые группы или группы узлов IPA, также потребуется корректно установить
\fBnisdomainname\fR(1)
в значение имени домена NIS (совпадает с именем домена IPA в случае использования групп узлов)\&.
.SH "Настройка SSSD для получения правил SUDO"
.PP
На стороне SSSD достаточно расширить список
\fIслужб\fR
добавлением \(Fosudo\(Fc в раздел [sssd]
\fBsssd.conf\fR(5)\&. Чтобы ускорить поиск LDAP, также можно указать базу поиска для правил sudo с помощью параметра
\fIldap_sudo_search_base\fR\&.
.PP
В следующем примере показано, как настроить SSSD на загрузку правил sudo с сервера LDAP\&.
.PP
.if n \{\
.RS 4
.\}
.nf
[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
.fi
.if n \{\
.RE
.\}
.sp

Важно учитывать, что на платформах, где поддерживается systemd, не требуется добавлять поставщика данных \(Fosudo\(Fc в список служб, так как он стал необязательным\&. Однако вместо этого следует включить sssd\-sudo\&.socket\&.
.PP
Когда программа SSSD настроена на использование IPA в качестве поставщика ID, включение поставщика данных sudo выполняется автоматически\&. База поиска sudo настроена на использование собственного дерева LDAP IPA (cn=sudo,$SUFFIX)\&. Если в sssd\&.conf определена какая\-либо другая база поиска, будет использоваться это значение\&. Дерево совместимости (ou=sudoers,$SUFFIX) больше не является необходимым для работы sudo IPA\&.
.SH "Механизм кэширования правил SUDO"
.PP
При разработке поддержки sudo в SSSD сложнее всего было сделать так, чтобы работа sudo c SSSD в качестве источника данных обеспечивала такие же скорость и взаимодействие с пользователем, что и sudo, при этом предоставляя настолько актуальный набор правил, насколько это возможно\&. Для этого в SSSD используются три вида обновлений: полное обновление, интеллектуальное обновление и обновление правил\&.
.PP
\fIИнтеллектуальное обновление\fR
периодически загружает правила, которые являются новыми или были изменены после последнего обновления\&. Основная задача \(em увеличивать базу данных путём получения небольших порций данных, что не создаёт большой сетевой трафик\&.
.PP
\fIПолное обновление\fR
просто удаляет все правила sudo, которые хранятся в кэше, и заменяет их всеми правилами, которые хранятся на сервере\&. Это позволяет поддерживать согласованность кэша: удаляются все те правила, которые были удалены с сервера\&. Однако полное обновление может генерировать большое количества трафика, поэтому его следует выполнять только иногда (промежуток между обновлениями зависит от размера и стабильности правил sudo)\&.
.PP
\fIОбновление правил\fR
обеспечивает, что пользователю не будет предоставлено больше прав, чем определено\&. Это обновление выполняется при каждом запуске sudo пользователем\&. Обновление правил находит все правила, которые применяются к этому пользователю, проверяет срок их действия и повторно загружает их, если этот срок истёк\&. Если на сервере отсутствуют какие\-либо из таких правил, SSSD выполнит общее полное обновление, так как могло быть удалено гораздо больше правил (применяемых к другим пользователям)\&.
.PP
Если этот параметр включён, SSSD будет сохранять только правила, которые могут быть применены к этому компьютеру\&. Это те правила, которые содержат в атрибуте
\fIsudoHost\fR
одно из следующих значений:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ключевое слово ALL
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
подстановочный знак
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
сетевая группа (в виде \(Fo+netgroup\(Fc)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
имя узла или полное доменное имя компьютера
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
один из IP\-адресов компьютера
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
один из IP\-адресов сети (в виде \(Foaddress/mask\(Fc)
.RE
.PP
Предусмотрено много параметров, которыми можно воспользоваться для настройки поведения программы\&. Подробное описание доступно в разделах \(Foldap_sudo_*\(Fc
\fBsssd-ldap\fR(5)
и \(Fosudo_*\(Fc
\fBsssd.conf\fR(5)\&.
.SH "Тонкая настройка производительности"
.PP
SSSD использует различные типы механизмов со сложными и простыми фильтрами LDAP для поддержания кэшированных правил sudo в актуальном состоянии\&. В стандартной конфигурации заданы значения, которые должны подойти большинству пользователей\&. Тем не менее, в последующих абзацах приводится несколько советов по тонкой настройке конфигурации\&.
.PP
1\&.
\fIИндексируйте атрибуты LDAP\fR\&. Убедитесь, что выполняется индексирование следующих атрибутов LDAP: objectClass, cn, entryUSN и modifyTimestamp\&.
.PP
2\&.
\fIЗадайте ldap_sudo_search_base\fR\&. Укажите в качестве базы поиска контейнер, который содержит правила sudo, чтобы ограничить область поиска\&.
.PP
3\&.
\fIЗадайте интервал полного и интеллектуального обновления\fR\&. Если правила sudo меняются редко и не требуется быстро обновлять кэшированные правила на клиентах, можно увеличить значения
\fIldap_sudo_full_refresh_interval\fR
и
\fIldap_sudo_smart_refresh_interval\fR\&. Также можно отключить интеллектуальное обновление:
\fIldap_sudo_smart_refresh_interval = 0\fR\&.
.PP
4\&. Если имеется большое количество клиентов, можно увеличить значение
\fIldap_sudo_random_offset\fR
для лучшего распределения нагрузки на сервер\&.
.SH "СМ\&. ТАКЖЕ"
.PP
\fBsssd\fR(8),
\fBsssd.conf\fR(5),
\fBsssd-ldap\fR(5),
\fBsssd-ldap-attributes\fR(5),
\fBsssd-krb5\fR(5),
\fBsssd-simple\fR(5),
\fBsssd-ipa\fR(5),
\fBsssd-ad\fR(5),
\fBsssd-files\fR(5),
\fBsssd-sudo\fR(5),
\fBsssd-session-recording\fR(5),
\fBsss_cache\fR(8),
\fBsss_debuglevel\fR(8),
\fBsss_obfuscate\fR(8),
\fBsss_seed\fR(8),
\fBsssd_krb5_locator_plugin\fR(8),
\fBsss_ssh_authorizedkeys\fR(8), \fBsss_ssh_knownhostsproxy\fR(8),
\fBsssd-ifp\fR(5),
\fBpam_sss\fR(8)\&.
\fBsss_rpcidmapd\fR(5)
\fBsssd-systemtap\fR(5)
.SH "AUTHORS"
.PP
\fBВосходящий источник (\(Foапстрим\(Fc)
SSSD \(em https://github\&.com/SSSD/sssd/\fR
