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 Group, то для выполнения команды будет использовать GID этой группы.
Удаление правил
Помимо отключения правила, его возможно удалить.