Я создал скрипт php для запуска и остановки служб в Synology. Конкретно, этот сценарий выполняет команду Synology '/ usr / syno / sbin / synoservice' с помощью инструкции shell_exec.
Я запускаю этот скрипт на веб-сайте nginx в Synology (DSM 6.1.x)
К сожалению, начиная с последних выпусков Synology, похоже, что только пользователь root может выполнять команду '/ usr / syno / sbin / synoservice'. И nginx запускает мой скрипт с пользователем 'http'.
Сделав 'ls -la / usr / syno / sbin /', я заметил, что многие команды теперь помечены 'x' только для пользователя root. Поэтому я попытался предоставить всем пользователям право на их выполнение: chmod o + x syno *. Но без успеха.
Итак, я предоставил следующему пользователю 'http' право выполнять команду '/ usr / syno / sbin / synoservice' в качестве пользователя root без пароля через файл sudoers: http ALL = (root) NOPASSWD: / usr / syno / sbin / synoservice. И это работает.
Но мне интересно, если бы вместо использования sudoers я мог настроить nginx для запуска моего сайта (и только этого) в качестве пользователя root?
Большое спасибо за советы!
V.
PS .: Возможно, мне нужно быть немного более точным, когда я говорю, что я запускаю свой сценарий на веб-сайте nginx в моей Synology: это не веб-сайт, определенный в WebStation моей Synology. Я использую файл .conf в ... / nginx / conf.d /, чтобы определить «местоположение» и правильно обработать мой скрипт с помощью / usr / local / bin / php70-cgi -c /etc/php/php.ini (хитрость, позволяющая запускать php-скрипты вне WebStation).