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

как выполнить действия root из учетной записи без полномочий root?

Я хочу иметь возможность перезапускать службы из php-скрипта. работает под учетной записью www-пользователя.

Как лучше всего выполнять эти действия?

Я понимаю, что могу создать файл с командами que'd, читаемыми CRON, но решение чешется.

Я имею в виду крошечный сервис, работающий под root, позволяющий использовать предопределенные «методы», поэтому произвольные действия root не могут быть выполнены.

Есть какой-нибудь инструмент для этого?

Вы можете изобрести велосипед, но, честно говоря, я использую для этого sudo без пароля. Например, моя система мониторинга должна иметь возможность запускать команду для проверки аппаратного RAID. Для этого требуются привилегии root, но я не хочу запускать всю систему мониторинга как root, поэтому вместо этого у меня есть sudoers строка, которая говорит

nagios  ALL=(root) NOPASSWD: /usr/lib/nagios/plugins/check_md_raid

а затем запустите команду sudo /usr/lib/nagios/plugins/check_md_raid как пользователь мониторинга, когда мне нужно проверить RAID.

У вас может быть строка sudoers, в которой говорится

www-user    ALL=(root) NOPASSWD: /etc/rc.d/init.d/myservice

затем запустите php sudo /etc/rc.d/init.d/myservice restart.

Взгляни на судо: он позволяет указать действия, которые могут быть выполнены как другой пользователь (root в вашем случае).

Вы можете, например, добавить в свой/etc/sudoers (не редактируйте файл напрямую, используйте visudo)

www-user-account ALL= NOPASSWD: /usr/bin/mypredefinedaction

Видеть man sudo для деталей и синтаксиса файла