Na jednym komputerze często muszę od czasu do czasu uruchamiać sudo
polecenia. sudo
W większości przypadków nie mam nic przeciwko wprowadzeniu hasła .
Istnieją jednak trzy sudo
polecenia, które chcę uruchomić bez wprowadzania hasła :
sudo reboot
sudo shutdown -r now
sudo shutdown -P now
Jak mogę wykluczyć te polecenia z ochrony hasłem sudo
?
Odpowiedzi:
Skorzystaj z
NOPASSWD
dyrektywyMożesz użyć
NOPASSWD
dyrektywy w swoim/etc/sudoers
pliku .Jeśli Twój użytkownik jest wywoływany,
user
a host jest nazywany,host
możesz dodać te linie do/etc/sudoers
:Umożliwi to użytkownikowi
user
uruchamianie żądanych poleceńhost
bez wprowadzania hasła. Wszystkie pozostałesudo
polecenia ed nadal będą wymagać hasła.Polecenia określone w
sudoers
pliku muszą być w pełni kwalifikowane (tj. Przy użyciu bezwzględnej ścieżki do polecenia do uruchomienia), jak opisano nasudoers
stronie man . Podanie ścieżki względnej jest uważane za błąd składniowy.Jeśli polecenie kończy się znakiem końcowym
/
i wskazuje na katalog, użytkownik będzie mógł uruchomić dowolne polecenie w tym katalogu (ale nie w żadnym z jego podkatalogów). W poniższym przykładzie użytkownikuser
może uruchomić dowolne polecenie w katalogu/home/someuser/bin/
:Uwaga: Zawsze używaj polecenia
visudo
do edycjisudoers
pliku, aby upewnić się, że nie zablokujesz się w systemie - na wypadek, gdyby przypadkowo zapisałeś coś niepoprawnego dosudoers
pliku.visudo
będzie zapisać zmodyfikowany plik do tymczasowej lokalizacji, a tylko zastąpić prawdziwegosudoers
pliku, jeśli zmodyfikowany plik może być analizowana bez błędów.Używanie
/etc/sudoers.d
zamiast modyfikowania/etc/sudoers
Alternatywnie do edycji
/etc/sudoers
pliku możesz dodać dwie linie do nowego pliku/etc/sudoers.d
np/etc/sudoers.d/shutdown
. Jest to elegancki sposób oddzielania różnych zmiansudo
praw, a także pozostawia oryginalnysudoers
plik nietknięty dla łatwiejszych aktualizacji.Uwaga: Ponownie użyj polecenia
visudo
do edycji pliku, aby upewnić się, że nie zablokujesz się w systemie:Zapewnia to również automatycznie prawidłowe ustawienie właściciela i uprawnień nowego pliku.
Jeśli
sudoers
jest pomieszanyJeśli nie używałeś
visudo
do edycji plików, a następnie przypadkowo pomieszałeś/etc/sudoers
lub pomieszałeś plik/etc/sudoers.d
, zostaniesz zablokowanysudo
.Rozwiązaniem może być naprawa plików za pomocą,
pkexec
która jest alternatywą dlasudo
.Aby naprawić
/etc/sudoers
:Aby naprawić
/etc/sudoers.d/shutdown
:Jeśli własność i / lub uprawnienia są niepoprawne dla dowolnego
sudoers
pliku, plik zostanie zignorowany,sudo
więc możesz również zostać zablokowany w tej sytuacji. Ponownie możesz użyć tegopkexec
do naprawy.Prawidłowe uprawnienia powinny wyglądać tak:
Użyj
pkexec
tego w celu ustalenia własności i uprawnień :źródło
user
nie ma innychsudo
uprawnień, żadne inne polecenia nie mogą być sudoedowane przez tego użytkownika. Spójrz naman sudo
iman sudoers
.mgd ALL=(root) NOPASSWD: /var/root/test
. Jestem użytkownikiemmgd
iALL
oznacza „ze wszystkich hostów” ./var/root/test
Jest to prosty „Hello World” skrypt z uprawnieniami:-rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test
. Nie wprowadziłem żadnych innych zmian w systemie.host
w pliku sudoers?Przepraszam, ale jest tyle zamieszania w tej sprawie i kilka naprawdę skomplikowanych odpowiedzi, że czuję, że muszę tu ważyć, zanim ktoś źle zrozumie i zrobi coś szalonego.
Korzystanie z visudo !!
Dodaj następujące wiersze do konfiguracji:
Umożliwia to wykonywanie poleceń, restartowanie i zamykanie z dowolnymi parametrami od dowolnego użytkownika.
Zmień stos, podaj proste zwięzłe odpowiedzi.
źródło