Назад | Перейти на главную страницу

В RedHat 8 использование SUDO для выполнения задач в качестве привилегированного пользователя (например, запуск службы systemd) не рекомендуется в пользу использования PolicyKit?

Немного контекста ...

У меня есть несколько устаревших сценариев инициализации System V, которые были преобразованы в файлы конфигурации модуля Systemd для RedHat 7. Проблемы с внезапным завершением пользовательских процессов, запущенных в user.slice, привели меня к открытию, что systemd / pam на RedHat 7 требует, чтобы мой сценарий использовал бегун для переключения пользователя (если он запущен как root) или Пользователь = чтобы убедиться, что они начнутся так как правильный пользователь. Теперь, чтобы убедиться, что systemd управляет моим демоном и запускает службу при перезагрузке, а также чтобы мои законные пользователи также могли запускать службу, у меня есть три варианта:

  1. Вместо этого определите "пользовательскую" службу (и используйте systemctl --user) контролировать это
  2. Разрешить моему пользователю запускать / останавливать службу sudo sudo systemctl start name.service
  3. Разрешить моему пользователю запускать / останавливать службу с помощью PolicyKit

Итак, вернемся к вопросу ...

Является судо все еще хороший способ предоставить моему пользователю права на управление службами для RedHat 8? Или мне следует использовать PolicyKit, как указано в systemd: предоставить непривилегированному пользователю разрешение на изменение одной конкретной службы

Спасибо. Фрэнк

Правила PolicyKit - лучшее решение.

Пользовательский блок полностью находится под контролем пользователя. Однако из-за отсутствия прав он не может работать как демон-пользователь с опцией «Пользователь».

Системный администратор должен запустить системную службу с правами root. Хотя можно делегировать с помощью sudo, необходимо позаботиться о конкретных правилах sudo или сценариях, чтобы не предоставлять ненужный привилегированный доступ произвольным командам. И у пользователей появляется ненужная привычка добавлять sudo к systemctl.

PolicyKit может предоставить пользователю доступ к системному модулю. Запуск от имени пользователя работает. Переход к корневому доступу не предоставляется конечному пользователю. Он также работает для других клиентов API-интерфейса управления модулями, а не только для systemctl.