@cryp24

Как выполнить «sudo service tor restart» из php скрипта?

Сервер ubuntu 18.04. Трудность заключается в том, что необходимо ввести пароль а в пхп этого не сделать.
В интернете нашел рекомендации:


Вы должны настроить sudo, чтобы сделать это возможным. У пользователя Apache должны быть права на команды exec, как root, используя sudo. Кроме того, в php-скриптах нет tty, поэтому вам нужно отключить требование tty в sudo. И у вас нет возможности вводить пароль пользователя в sudo в php-скрипте, поэтому вам также нужно отключить проверку подлинности.
Для этого поставьте «перезапуск службы» в текстовый файл и выполните исполняемый файл. Это гораздо более безопасное значение, что пользователь Apache мог только перезапустить TOR, ничего другого. Затем в строке комментария/etc/sudoers:
Defaults requiretty
Добавить строки:
Defaults !authenticate
apache ALL=NOPASSWD: /path/to/file
Замените apache на www-data ​​strong>, если вы используете дистрибутив типа Debian
Теперь вы можете выполнить «sudo service tor restart» из вашего php-скрипта.


В том виде как описано, не работает! Помогите разобраться как это реализовать, может быть в этой схеме что то упущено.
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
abyrvalg
@abyrvalg
> У пользователя Apache должны быть права на команды exec, как root, используя sudo.
За такие рекомендации надо причинять рекомендодателю смерть через сепукку.

Я бы просто устанавливал из пхп какой-то маркер "требуется перезапустить тор". Самое простое - создать определённый файл.
Другая часть, никак не связанная с апачем и вообще с внешним миром, каким-то образом мониторит появление маркера и выполняет при его наличии требуемое действие. Самое простое - использовать крон.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы