Największą różnicą jest to sudo, że nie potrzebujesz hasła roota, aby uruchomić komendę jako root, tak jak byś to zrobił su. Potrzebujesz hasła roota, aby dodać kogoś do sudoerspliku, ale później ta osoba będzie mogła uruchomić wszystkie lub niektóre (jeśli je ograniczyłeś) jako root bez potrzeby podawania dodatkowego hasła.
Inną różnicą jest, jak zauważyłeś, sudoznacznie lepsza kontrola dokładnie nad tym, jakie polecenia można uruchamiać.
Szczegółowe informacje na temat formatu sudoersuruchomienia pliku man sudoers. Znajdziesz tam przykłady zezwalania na uruchamianie tylko niektórych poleceń jako root. Podstawowa struktura każdej linii to:
user_list host_list = cmd_list
cmd_list może zawierać szczegóły, do którego użytkownika może się przełączać prawdziwy użytkownik. Na przykład możesz zezwolić webmasterowi na przełączenie na wwwroot, aby zrestartować apache, ale nie rootować. Może także zawierać inne opcje, takie jak to, czy hasło użytkownika jest wymagane przed przełączeniem (jest to ustawienie domyślne).
Przykładowa linia może być:
joe ALL=(ALL) ALL
co oznacza: niech Joe uruchomi dowolne polecenie na dowolnym hoście jako dowolny użytkownik. Węższa linia może być:
joe ALL=(operator) /usr/local/ops/
co oznacza: niech Joe uruchomi dowolne polecenie w katalogu / usr / local / ops jako użytkownik „operator”.
Na końcu strony podręcznika sudoers znajduje się wiele przykładów.
Powinieneś edytować /etc/sudoersza pomocą polecenia visudo. To sprawdza, czy plik jest legalny i pomaga zapobiec przypadkowemu jego uszkodzeniu.
sudoto niesamowity wynalazek