Odpowiedzi:
Krótka odpowiedź:
Za pomocą visudo
dodaj następujący plik do pliku sudoers, zastępując nazwę użytkownika prawidłową nazwą użytkownika:
username ALL = /etc/init.d/apache2
Jeśli nie chcesz wpisywać hasła, wykonaj następujące czynności:
username ALL = NOPASSWD: /etc/init.d/apache2
Następnie użytkownik „nazwa użytkownika” może wykonać sudo /etc/init.d/apache2 start
(lub zatrzymać, uruchomić ponownie itp.)
Długa odpowiedź: Prawdopodobnie będziesz chciał skonfigurować osobnego użytkownika, jeśli jeszcze tego nie zrobiłeś, a następnie skonfiguruj plik / etc / sudoers, aby umożliwić użytkownikowi lub grupie wykonanie żądanego polecenia.
Na przykład, aby zezwolić użytkownikowi „ben” na wykonywanie wszystkich poleceń jako root z prośbą o podanie hasła, wykonaj następujące czynności:
ben ALL= ALL
Aby zezwolić „ben” na wykonanie tylko jednego polecenia (jak powiedzmy, rm
), wykonaj następujące czynności:
ben ALL= /bin/rm
Jeśli uruchamiasz skrypt jako użytkownik i nie chcesz pytać o hasło, możesz użyć opcji „NOPASSWD” w następujący sposób:
ben ALL=NOPASSWD: /bin/commandname options
Możesz zrobić to samo dla grup, poprzedzając nazwy grup znakiem procentowym, na przykład:
%supportstaff ALL= NOPASSWD: /bin/commandname
visudo
komenda robi kontrole bezpieczeństwa na Twoich zmian, więc nie złamać sudo
/ su
polecenie przez przypadek: unix.stackexchange.com/a/27595/61349
Krótka odpowiedź: sudo.
Połączenie wyglądałoby podobnie do następującego: sudo /etc/init.d/apache2 restart
Najłatwiej jest użyć visudo
do skonfigurowania pliku / etc / sudoers. Zobacz man sudoers
i man visudo
szczegóły.
Można to również osiągnąć, pisząc opakowanie na apache2ctl, przypisując własność grupy grupie administracyjnej i ustawiając bit suid. Jest to mniej ogólne rozwiązanie niż visudo, ale pozwala na niestandardowe ograniczenia możliwości użytkownika i sprawdzania błędów.
Napisałem to narzędzie na własne potrzeby i udostępniłem je na github: https://github.com/josiahjohnston/ltd_apache2ctl
username
można ograniczyć do podzbioru parametrów? Powiedz,start
restart
ale niestop
?