Główną różnicą między tymi poleceniami jest sposób, w jaki ograniczają dostęp do swoich funkcji.
su
(co oznacza „podmień użytkownika” lub „przełącz użytkownika”) - robi dokładnie to, uruchamia kolejną instancję powłoki z uprawnieniami użytkownika docelowego. Aby mieć do tego uprawnienia, prosi o podanie hasła użytkownika docelowego . Aby zostać rootem, musisz znać hasło roota. Jeśli na twoim komputerze jest kilku użytkowników, którzy muszą uruchamiać polecenia jako root, wszyscy muszą znać hasło roota - pamiętaj, że będzie to to samo hasło. Jeśli musisz odwołać uprawnienia administratora od jednego z użytkowników, musisz zmienić hasło roota i przekazać je tylko tym osobom, które muszą zachować dostęp - niechlujny.
sudo
(hmm ... co to jest mnemonik? Super-User-DO?) jest zupełnie inny. Wykorzystuje plik konfiguracyjny (/ etc / sudoers), który wyświetla listę użytkowników, którzy mają prawa do określonych działań (uruchamiaj polecenia jako root, itp.) Po wywołaniu pyta o hasło użytkownika, który go uruchomił - aby upewnić się, że osoba na terminal to tak naprawdę ten sam „Joe”, który jest wymieniony w /etc/sudoers
. Aby odwołać uprawnienia administratora od osoby, wystarczy edytować plik konfiguracyjny (lub usunąć użytkownika z grupy wymienionej w tej konfiguracji). Powoduje to znacznie czystsze zarządzanie uprawnieniami.
W rezultacie w wielu systemach opartych na Debianie root
użytkownik nie ma ustawionego hasła - tzn. Nie można zalogować się bezpośrednio jako root.
Ponadto, /etc/sudoers
pozwala określić dodatkowe opcje - tj użytkownik X jest tylko w stanie uruchomić program, Y itd
Często wykorzystywane sudo su
kombinacja działa w następujący sposób: najpierw sudo
prosi o swoim hasłem, a jeśli masz prawo do tego, powołuje się na następną komendę ( su
) jako super-użytkownika. Ponieważ su
jest wywoływany przez root
, nie wymaga wprowadzania hasła użytkownika docelowego. Tak więc, sudo su
pozwala otworzyć skorupę jako inny użytkownik (w tym root), jeśli masz prawo dostępu super-użytkownika o /etc/sudoers
pliku.
su user
do logowania z niezaufanych powłok, alesu - user
. Zobacz unix.stackexchange.com/q/7013/8250