Перезапуск apache как www-data с использованием perl - PullRequest
5 голосов
/ 17 августа 2011

Я работаю над веб-страницей, которой после определенных событий необходимо перезапустить сервер apache, на котором он работает, чтобы обновить некоторые файлы.Я попытался добавить www-данные в файл sudoers:

www-data ALL=(ALL) NOPASSWD: /etc/init.d/apache2 start, /etc/init.d/apache2 stop, /etc/init.d/apache2 restart, /sbin/services apache2 restart

, но когда я пытаюсь перезапустить apache, я получаю следующее:

sudo -u www-data /etc/init.d/apache2 restart
Restarting web server apache2                                                                                                            (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

При просмотре в Интернете я обнаружил, что людиЯ был против того, чтобы www-data перезапускал apache, и я не мог найти ничего, что подсказывало бы, как я это сделаю, если я хочу игнорировать предупреждения для этого конкретного случая.Если это невозможно, каков будет самый простой альтернативный способ перезагрузить веб-страницу apache?Я предполагаю, что сайт является частным и безопасным и не будет использоваться злоумышленниками, и я думаю, что он справедливый, учитывая обстоятельства, в которых я нахожусь.Спасибо за ваше время

Ответы [ 2 ]

1 голос
/ 17 августа 2011

init-скрипты могут / должны запускаться только как root (по крайней мере, в моем стандартном Debian это так).

apache-процесс (и те из других сервисов) будут вызыватьsetuid (или один из его друзей) для изменения фактического пользователя процесса.

0 голосов
/ 18 августа 2011

root должен перезапустить веб-сервер:

sudo /etc/init.d/apache2 restart

Это заставит apache работать под пользователем www-data.

вам не нужно добавлять www-данные в файл sudoers, если вы не хотите разрешить пользователю www-data перезагружать сервер - но обычно вы не должны входить в систему под учетной записью www-data, это системная учетная запись .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...