Podobnie jak większość rzeczy w systemie Linux, polecenie sudo jest bardzo konfigurowalne. Możesz uruchamiać określone polecenia, nie pytając o hasło, ograniczać konkretnych użytkowników do zatwierdzonych poleceń, loguj polecenia uruchamiane przy pomocy sudo i nie tylko.
Zachowanie polecenia sudo jest kontrolowane przez plik / etc / sudoers w twoim systemie. Polecenie to należy edytować za pomocą komendy visudo, która wykonuje sprawdzanie składni, aby upewnić się, że przypadkowo nie złamiesz pliku.
Konto użytkownika utworzone podczas instalacji Ubuntu jest oznaczone jako konto administratora, co oznacza, że może używać sudo. Wszelkie dodatkowe konta użytkowników tworzone po instalacji mogą być kontami administracyjnymi lub standardowymi kontami użytkowników - standardowe konta użytkowników nie mają uprawnień sudo.
Możesz kontrolować typy kont użytkowników w sposób graficzny za pomocą narzędzia Konta użytkowników Ubuntu. Aby go otworzyć, kliknij swoją nazwę użytkownika na panelu i wybierz Konta użytkowników lub wyszukaj Konta użytkowników w łączniku.
Domyślnie sudo zapamiętuje twoje hasło przez 15 minut po jego wpisaniu. Dlatego wystarczy wpisać hasło tylko raz, wykonując wiele poleceń za pomocą sudo w krótkim odstępie czasu. Jeśli masz zamiar pozwolić komuś innemu na korzystanie z komputera i chcesz, aby sudo pytało o hasło przy następnym uruchomieniu, wykonaj następujące polecenie, a sudo zapomni hasła:
sudo -k
Jeśli wolisz być monitowany za każdym razem, gdy używasz sudo - na przykład, jeśli inne osoby regularnie mają dostęp do twojego komputera - możesz wyłączyć całkowicie zapamiętywanie hasła.
To ustawienie, podobnie jak inne ustawienia sudo, zawarte jest w pliku / etc / sudoers. Uruchom komendę visudo w terminalu, aby otworzyć plik do edycji:
sudo visudo
Pomimo swojej nazwy, polecenie to jest domyślnym edytorem nano przyjaznym dla nowych użytkowników zamiast tradycyjnego edytora vi w systemie Ubuntu.
Dodaj następującą linię poniżej innych linii Defaults w pliku:
Domyślne timestamp_timeout = 0
Naciśnij Ctrl + O, aby zapisać plik, a następnie naciśnij Ctrl + X, aby zamknąć Nano. Sudo będzie teraz zawsze pytać o hasło.
Aby ustawić inny limit czasu hasła - dłuższy niż 30 minut lub krótszy jak 5 minut - wykonaj powyższe kroki, ale użyj innej wartości dla timestamp_timeout. Liczba odpowiada liczbie minut, przez które sudo zapamięta twoje hasło. Aby sudo pamiętało twoje hasło przez 5 minut, dodaj następujący wiersz:
Domyślny timestamp_timeout = 5
Możesz także poprosić sudo, by nigdy nie pytał o hasło - dopóki jesteś zalogowany, każda komenda, którą poprzedzasz prefiksem sudo, będzie działać z uprawnieniami root'a. Aby to zrobić, dodaj następujący wiersz do pliku sudoers, gdzie nazwa użytkownika to Twoja nazwa użytkownika:
nazwa użytkownika ALL = (ALL) NOPASSWD: ALL
Możesz także zmienić linię% sudo - czyli linię, która pozwala wszystkim użytkownikom z grupy sudo (znanej również jako użytkownicy Administrator) używać sudo - aby wszyscy użytkownicy Administrator nie wymagali haseł:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Możesz także określić konkretne polecenia, które nigdy nie będą wymagały hasła, gdy uruchomisz je za pomocą sudo. Zamiast używać "ALL" po NOPASSWD powyżej, określ lokalizację poleceń. Na przykład poniższy wiersz pozwoli Twojemu kontu użytkownika uruchamiać komendy apt-get i shutdown bez hasła.
nazwa użytkownika ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
Może to być szczególnie przydatne przy uruchamianiu określonych poleceń za pomocą sudo w skrypcie.
Chociaż możesz zablokować określone polecenia i uniemożliwić użytkownikom uruchamianie ich za pomocą sudo, nie jest to zbyt skuteczne. Na przykład możesz określić, że konto użytkownika nie może uruchomić polecenia zamknięcia za pomocą sudo. Ale to konto użytkownika może uruchomić polecenie cp za pomocą sudo, utworzyć kopię polecenia shutdown i zamknąć system za pomocą kopii.
Bardziej skutecznym sposobem jest dodawanie do białej listy konkretnych poleceń. Na przykład możesz dać kontu użytkownika Standardowego uprawnienia do używania komend apt-get i shutdown, ale nie więcej. Aby to zrobić, dodaj następujący wiersz, w którym standarduser to nazwa użytkownika:
standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
Poniższe polecenie powie nam, jakie polecenia użytkownik może uruchomić za pomocą sudo:
sudo -U standarduser -l
Możesz zarejestrować cały dostęp sudo, dodając następujący wiersz. / var / log / sudo to tylko przykład; możesz użyć dowolnej lokalizacji pliku dziennika, którą lubisz.
Domyślnie logfile = / var / log / sudo
Wyświetl zawartość pliku dziennika za pomocą polecenia podobnego do tego:
sudo cat / var / log / sudo
Należy pamiętać, że jeśli użytkownik ma nieograniczony dostęp do sudo, może on usunąć lub zmodyfikować zawartość tego pliku. Użytkownik może również uzyskać dostęp do wiersza polecenia root za pomocą polecenia sudo i uruchamiać polecenia, które nie zostałyby zarejestrowane. Funkcja rejestrowania jest najbardziej przydatna w połączeniu z kontami użytkowników, które mają ograniczony dostęp do podzbioru poleceń systemowych.