Как настроить один сайт для запуска с правами root с помощью Nginx в Synology - PullRequest
0 голосов
/ 01 ноября 2018

Я создал скрипт 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).

...