Jak utworzyć polecenie, aby uruchomić z sudo?

1

Stworzyłem plik o nazwie svrestart w /home/gab/bin (który jest folderem, który powinien być automatycznie dodawany do ścieżki podczas uruchamiania), który zawiera:

/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart

Wtedy to zrobiłem chmod +x svrestart a potem zrestartowałem.

Teraz, jeśli ucieknę svrestart Otrzymuję błąd odmowy dostępu, ponieważ nie mogę uzyskać dostępu do tych usług. Jeśli ucieknę sudo svrestartz drugiej strony dostaję:

sudo: svrestart: command not found

Ponieważ polecenie jest hostowane w /home/gab/bin a użytkownik root prawdopodobnie nie może go znaleźć.

Jak to zrobić?

Gabriele Cirulli
źródło

Odpowiedzi:

3

Wystarczy odpowiednio zmienić te linie.

sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart

Zostaniesz poproszony o podanie sudo hasło do pierwszego polecenia.

slhck
źródło
... chyba że jest sudoer bez hasła.
Daniel Beck
@DanielBeck Czy nie ma różnicy między GNU sudo i tutaj na OS X? Co właściwie zrobić w tym przypadku?
slhck
Biegać less /etc/sudoers i szukaj %wheel, tradycyjna grupa administracyjna Unix (?). Jest jedna linia wymagająca hasła, inna nie wymagająca. %admin, używana zamiast tego grupa OS X wymaga również hasła. Edytuj plik (jak root oczywiście), dodaj NOPASSWD w %admin linia, sudo -k aby unieważnić swój datownik sudo (więc musisz ponownie wprowadzić hasło, nawet jeśli wprowadziłeś je tylko niedawno) sudo ls. Nie jest wymagane hasło.
Daniel Beck