FreeIPA позволяет настраивать правила разрешения и запрета на использование sudo для пользователей и групп пользователей. При использовании нативных команд ipa-server-install
или ipa-client-install
для развертывания сервера или ввода клиента в домен система автоматически конфигурируется таким образом, чтобы sudo использовал SSSD как провайдера данных, конфигурируя файл /etc/nsswitch.conf
:
sudoers: files sss
где
files
— использовать данные из/etc/sudoers
;sss
— использовать данные, предоставленныеsssd
.
SSSD в свою очередь сконфигурирован таким образом, чтобы получать данные по правилам sudo
от LDAP-сервера (более подробная информация по работе sudo приведена в man sudo
, man sudoers
.
- Правила sudo не могут применяться к встроенной группе хостов
ipaserver
, т.к. эта группа не имеет свойстваmepmanagedentry
, следовательно не имеет вobjectclass
записьmepOriginEntry
, что является необходимым условием для идентификации группы. Это является особенностью схемы в FreeIPA. Для SSSD существует кэширование с TTL, по умолчанию — 5400. Для немедленного применения правил sudo необходимо этот кэш очистить, выполнив следующие команды:
systemctl stop sssd rm /var/lib/sss/db/* systemctl start sssd
Процесс работы с правилами sudo
Добавление команд
Для добавления новой команды необходимо перейти в Policy — Sudo — Sudo Commands и нажать Add. В появившемся окне необходимо указать полный путь расположения команды и, при необходимости, — описание команды:
Также команды возможно объединять в группы команд. Для этого необходимо перейти в Policy — Sudo — Sudo Command Group, нажать Add, ввести имя группы, нажать Add and Edit и добавить необходимые команды.
Добавление правила
Для создания нового правила необходимо перейти в Policy — Sudo — Sudo Rules.
Здесь представлен список всех имеющихся правил и отображено состояние этих правил — включено или выключено. При нажатии на кнопку Add система запросит имя правила. После ввода имени нового правила необходимо нажать кнопку Add and Edit.
Настройка правила
Options — указываются параметры для sudo. Например, не запрашивать пароль у пользователя при использовании команды sudo
.
Who — возможно применять ко всем пользователям в домене FreeIPA или указать конкретных пользователей и группы пользователей.
Access this host — возможно применять на всех узлах в домене FreeIPA или указать конкретные узлы и группы узлов.
Run Commands — указываются команды, к которым применяется данное правило. Возможно указание Allow или Deny на выполнение команды или группы команд.
As Whom — указываются каким пользователем или группой пользователей (не root-пользователем) будет выполнена команда. При добавлении группы пользователей в Group of RunAs Users для выполнения команды будет использоваться UID членов этой группы. При добавлении в RunAs Groups для выполнения команды будет использоваться GID этой группы.
Удаление правил
Помимо отключения правила, его возможно удалить.