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ć?

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.


... 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.