LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Это нельзя и не надо делать с помощью su. su это утилита для перелогина в рута или другого юзера, а не для ребута сервисов.

С помощью sudo - тоже не надо. И в очередной раз повторю, что выдавать доступ опираясь на текстовый анализ команды (это именно то, чего делает дефективное sudo) - это фу. Не надо выдавать доступ к строке «systemctl restart aaa.service», надо выдавать доступ к действию «перезапустить сервис aaa». А юзер, обращающийся за этим перезапуском, даже знать не должен, что там внутри - systemctl, init-скрипт, отправка демону сигнала или ещё чего. Команда может выглядеть как-то так: restart-aaa, и представлять из себя например setuid-root бинарник с правами 4710 и группой allow-restart-aaa, делающий нужное действие. А того юзера соответственно надо в эту группу добавить.

Иными словами: юзер не должен «запускать что-то там с повышенными правами», он должен «обращаться к системному сервису».

Исходная версия firkax, :

Это нельзя и не надо делать с помощью su. С помощью sudo - тоже не надо. И в очередной раз повторю, что выдавать доступ опираясь на текстовый анализ команды (это именно то, чего делает дефективное sudo) - это фу. Не надо выдавать доступ к строке «systemctl restart aaa.service», надо выдавать доступ к действию «перезапустить сервис aaa». А юзер, обращающийся за этим перезапуском, даже знать не должен, что там внутри - systemctl, init-скрипт, отправка демону сигнала или ещё чего. Команда может выглядеть как-то так: restart-aaa, и представлять из себя например setuid-root бинарник с правами 4710 и группой allow-restart-aaa, делающий нужное действие. А того юзера соответственно надо в эту группу добавить.