Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
- Astra Linux Special Edition РУСБ.10015-17
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Special Edition РУСБ.10015-16 исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Введение
FreeIPA позволяет настраивать правила разрешения и запрета на использование sudo для пользователей и групп пользователей. В правилах могут задаваться:
- пользователи (группы пользователей), к которым применяются правила;
- команды (группы команд), которые можно (нельзя) выполнять этим пользователям с применением
sudo; - хосты (группы хостов), на которых применяется правило;
- опции команды
sudo, использующиеся при применении правила.
При инициализации контроллера (реплики) FreeIPA или при вводе клиента в домен FreeIPA система автоматически конфигурируется так, чтобы команда sudo использовала доменную службу sssd как источник данных о разрешениях использования sudo. Эта конфигурация задается в файле /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 выполняет кеширование данных с периодом обновления по умолчанию 5400 секунд. Для немедленного применения правил sudo необходимо очистить кеш, выполнив на клиентской машине следующие команды:
sudo rm /var/lib/sss/db/*
sudo systemctl start sssd
sssctl, входящим в пакет sssd-tools:Регистрация команд
Команды, которые будут далее использоваться в правилах sudo (т. е. которые далее могут выполняться от имени sudo указанными в правилах пользователями) должны быть зарегистрированы. Зарегистрировать можно любую команду, имеющуюся в системе, на которой будет применяться правило. Для регистрации:
- Войти в веб-интерфейс FreeIPA.
- Перейти во вкладку Политика.
- Выбрать в выпадающем меню Sudo — Команды Sudo и нажать Добавить.
- В появившемся окне:
Указать полный путь расположения команды, которая должна выполняться от имени
sudo(например, для редактора nano —/usr/bin/nano);
Узнать полный путь расположения команды можно командойwhich, например:which nanoПути расположения команд стандартны и обычно не зависят от системы, однако в случае нестандартных путей расположения системе может понадобиться получить пути на той машине, на которой будет применяться правило.- Опционально указать описание команды в произвольной форме (например, Текстовый редактор nano):
- Для сохранения изменений нажать кнопку Добавить. В результате указанная команда будет добавлена в список зарегистрированных команд:
Далее эту команду можно будет использовать в правилахsudo.
Создание правила
Для создания нового правила sudo:
- Перейти во вкладку Политика.
- Выбрать в выпадающем меню Sudo — Правила Sudo.
- Нажать кнопку Добавить и ввести имя правила.
- Нажать кнопку Добавить и изменить, будет создано "пустое" правило и откроется форма настройки его параметров:
- Раздел Основные содержит поля:
- Порядок Sudo — необязательный приоритет правила. Представляется целым числом, определяет очередность выполнения правила. Правила с большим значением выполняются раньше;
- Описание — необязательный комментарий к правилу;
Раздел Параметры — параметры для команды
sudo. Например, наиболее распространенная опция — не запрашивать пароль у пользователя при использовании командыsudo(опция!authenticate). Если в правиле указать эту опцию, то указанные в правиле команды можно будет выполнять черезsudoбез ввода пароля, если опция не используется, то потребуется ввести пароль пользователя, выполняющего команду.Полный список поддерживаемых параметров см. в справочной системе:
man sudoers- Раздел Кто — список пользователей и групп пользователей, которым разрешено применять sudo в соответствии с правилом. Можно разрешить применять правило всем пользователям (группам пользователей);
- Раздел Получить доступ к узлу — список узлов в домене FreeIPA, на которых применяется правило. Можно разрешить применять правило на всех узлах;
- Раздел Выполнить команды — команды, к которым применяется данное правило. Возможно разрешить или запретить выполнение команды или группы команд (порядок объединения команд в группы см. далее), также возможно разрешить выполнять все команды;
- Раздел В качестве — от имени какого пользователя или группы пользователей (не root-пользователя) может быть выполнена команда. При добавлении группы пользователей в Группы пользователей запуска от имени для выполнения команды могут использоваться идентификаторы пользователей (UID) членов этой группы. При добавлении в Группы запуска от имени для выполнения команды могут использоваться GID этой группы.
- Раздел Основные содержит поля:
- Нажать кнопку Сохранить после внесения изменений в правило.
Удаление или отключение правила
Для удаления или отключения правила:
- Выбрать из списка правило, которое необходимо отключить или удалить;
- Для отключения правила нажать кнопку Отключить, для удаления — Удалить.
Объединение команд в группу
Для удобства управления команды можно объединять в группы. Для этого:
- Перейти во вкладку Политика.
- Выбрать в выпадающем меню Sudo — Группы команд Sudo.
- Нажать кнопку Добавить и ввести имя группы.
- Нажать кнопку Добавить и изменить и добавить команды, которые следует объединить в группу.


