Я хочу иметь возможность перезапустить сервисы из php-скрипта. работает под учетной записью www-пользователя.
Какой предпочтительный способ выполнить эти действия?
Я решил, что могу создать файл с командами que'd, прочитанными CRON, но решение чешется.
Я имею в виду крошечный сервис, работающий под root, позволяющий предопределенные «методы», поэтому произвольные действия root не могут быть выполнены.
Есть какой-нибудь инструмент для этого?
linux
security
web-server
root
user65297
источник
источник
Ответы:
Вы можете изобрести велосипед, но, честно говоря, я использую sudo без пароля для этого. Например, моя система мониторинга должна иметь возможность выполнять команду для проверки аппаратного RAID. Это требует привилегий суперпользователя, но я не хочу запускать всю систему мониторинга от имени root, поэтому вместо этого я в
sudoers
строке, которая говорити затем запустите команду
sudo /usr/lib/nagios/plugins/check_md_raid
как пользователь мониторинга, когда мне нужно проверить RAID.Вы могли бы иметь линию sudoers, которая сказала
тогда сделайте php
sudo /etc/rc.d/init.d/myservice restart
.источник
Взгляните на sudo : он позволяет указать действия, которые могут быть выполнены от имени другого пользователя (root в вашем случае).
Вы можете, например, добавить в свой
/etc/sudoers
(не редактируйте файл напрямую использоватьvisudo
)Смотрите
man sudo
подробности и синтаксис файлаисточник
/etc/sudoers
файла. Если это каким-либо образом синтаксически неверно, его изменение - это кошмар, потому что вам нужноsudo
вернуться в него, но вы не можете этого сделать, просто уничтожив sudo. Вам в конечном итоге придется использовать аварийный CD / DVD и монтировать раздел вручную.shudders
? Это правда, что visudo проводит проверки работоспособности, но они не помогают после нанесения ущерба: P