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 sudoers
pliku, 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ś, sudo
znacznie lepsza kontrola dokładnie nad tym, jakie polecenia można uruchamiać.
Szczegółowe informacje na temat formatu sudoers
uruchomienia 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/sudoers
za pomocą polecenia visudo
. To sprawdza, czy plik jest legalny i pomaga zapobiec przypadkowemu jego uszkodzeniu.
sudo
to niesamowity wynalazek