2011-08-16 11 views
5

Pracuję na stronie internetowej, która po pewnych zdarzeniach musi ponownie uruchomić serwer apache, na którym działa, aby zaktualizować niektóre pliki. Próbowałem dodając www-data do pliku sudoers:Ponowne uruchamianie apache jako danych www przy użyciu perl

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

ale przy próbie ponownego uruchomienia apache, mam następujące:

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 

Szukając w internecie, znalazłem, że ludzie wydawał się być przeciwko pozwalając www-data, aby ponownie uruchomić Apache i nie mogłem znaleźć niczego sugerującego, jak bym to zrobił, gdybym chciał zignorować ostrzeżenia dla tego konkretnego przypadku. Jeśli nie jest to możliwe, jaki byłby najłatwiejszy sposób na ponowne uruchomienie Apache w przeglądarce? Zakładam, że strona jest prywatna i bezpieczna i nie będzie wykorzystywana przez złośliwe osoby, i myślę, że jest to uczciwa sytuacja, biorąc pod uwagę okoliczności, w których się znajduję. Dziękujemy za poświęcony czas

Odpowiedz

1

Skrypty startowe mogą/powinny być uruchamiane tylko jako root (przynajmniej na moim standardowym Debianie).

Proces apache (i te z innych usług) wywoła setuid (lub jednego z jego przyjaciół), aby zmienić faktycznego użytkownika procesu.

0

korzeń należy ponownie uruchomić serwer WWW:

sudo /etc/init.d/apache2 restart 

To pozwoli uruchomić apache pod użytkownika www-data.

nie musisz dodawać danych www do pliku sudoers, chyba że chcesz zezwolić użytkownikowi www-dane na ponowne uruchomienie serwera - ale zazwyczaj nie powinieneś logować się na konto danych www, to jest system konto.

Powiązane problemy