Hasło sudo i trzy zabezpieczenia
Polecenie sudo
służy do wykonywania zdań, do których dostęp ma root, ale bez potrzeby przelogowywania się na niego. W OS X po jednokrotnym wpisaniu hasła podczas wywołania komendy sudo, nie będziemy musieli ponownie wpisywać tego pierwszego (hasła) przez 5 minut. Można to jednak zmienić.
Mamy kilka możliwości dotyczących czasu, po którym będzie trzeba ponownie wpisać hasło z wykorzystaniem sudo
:
- skrócić ten czas,
- wydłużyć,
- zlikwidować, żeby wpisywać hasło za każdym razem,
- ustawić, żeby hasło nigdy nie wygasało.
Aby skonfigurować którąkolwiek z powyższych opcji, musimy wyedytować plik sudoers
w specjalnym edytorze. Zrobimy to przy pomocy poniższego polecenia:
sudo visudo
Klawiszami strzałek na klawiaturze zjeżdżamy na sam koniec pliku, na końcu linijki. Tam wciskamy klawisz i
, aby przejść w tryb edycji. Przechodzimy do nowej linii klawiszem Enter
i wpisujemy tam poniższą frazę:
Defaults timestamp_timeout=x
Gdzie x
to czas podany w minutach. Jak już wspominałem, domyślnie hasło sudo jest w mocy przez 5 minut. Możemy ten czas skrócić lub wydłużyć. Mogą to być liczby dziesiętne, ale trzeba pamiętać, że zamiast przecinka, trzeba ją zapisać z kropką, np. 0.5
będzie oznaczało 0,5 minuty. Jeśli chcemy natomiast zupełnie wyłączyć tę opcję, czyli wpisywać hasło przy każdym użyciu, musimy ustawić liczbę 0
. Ostanią możliwość daje wpisanie dowolnej liczby ujemnej. Efektem takiego ustawienia będzie zapamiętanie hasła na stałe, co może być przydatne w określonych warunkach, a z drugiej strony – niebezpieczne w pozostałej większości.
Kiedy już ustawimy czas, pozostaje nam tylko zapisać zmiany i wyjść z edytora visudo
. Żeby to zrobić, musimy najpierw wyjść z trybu edycji klawiszem Esc
. Potem wciskamy klawisze Shift
+;
i kiedy w linii pojawi się :
, wpisujemy dwie litery – wq
(czyli zapisz i wyjdź) i zatwierdzamy klawiszem Enter
. Teraz wystarczy zrestartować Terminal, żeby zmiany weszły w życie.
Drugim zabezpieczeniem jest czas, w jakim wyświetla się pole do wpisania hasła. Domyślnie pole to nigdy nie wygasa, ale również to można zmienić. Jeśli chcecie to zrobić, to znowu trzeba edytować ustawienia dla sudo
, jak to opisałem wcześniej, ale tym razem na końcu pliku dopisujemy poniższą frazę:
Defaults passwd_timeout=x
x
również podajemy w minutach i możemy korzystać z liczb dziesiętnych. Wartość domyślna – 0 – powoduje, że pole hasła nigdy nie wygasa. Tutaj nie używamy też liczb ujemnych. Na koniec nie zapomnijcie wyjść z edycji (Esc
) i zapisać zmian (Shift
+;
oraz wq
i Enter
).
Trzecim sposobem na zabezpieczenie, jest zmiana liczby prób wpisywanych haseł. Domyśnie wartość ta wynosi 3. Jeśli wykorzystamy te możliwości i znowu źle wpiszemy hasło, polecenie sudo
zostanie anulowane. Aby zmniejszyć (lub też zwiększyć) liczbę prób, musimy korzystając z powyższej metody edycji pliku sudo visudo
dodać na końcu:
Defaults passwd_tries=x
Gdzie x
to liczba prób (oczywiście w tym przypadku już bez używania ułamków dziesiętnych).
Źródło OS X Daily
Komentarze: 1
Nie zgodzę się ze stwierdzeniem w pierwszym zdaniu.
`root` z zasady ma dostęp do wszystkich poleceń, więc stwierdzenie “Polecenie sudo służy do wykonywania zdań, do których dostęp ma root” jest nie do końca precyzyjne.
`sudo` służy do wykonywania poleceń JAKO `root`.
Weźmy za przykład utworzenie pliku poleceniem `touch [nazwa_pliku]`
Jeżeli zrobimy to w katalogu, domowym użytkownika, to utworzy on plik `[nazwa_pliku]`, którego właścicielem będzie użytkownik, którym odpaliliśmy komendę.
Jeżeli zaś zrobimy `sudo touch [nazwa_pliku]` to również zostanie utworzony plik, ale jego właścicielem będzie już użytkownik `root`.