Władza absolutna w Linuksie - root, sudo, su

W zadaniach praktycznych kwalifikacji INF.02 (a dawniej EE.08) niemal każdy arkusz egzaminacyjny wymaga skonfigurowania nowego użytkownika, nadania mu odpowiednich uprawnień lub wykonania poleceń wymagających praw administratora.

Wielu uczniów traci punkty na prostych pomyłkach: myleniu haseł przy su i sudo, zapomnieniu o fladze -a przy dodawaniu do grup czy próbie ręcznej edycji pliku uprawnień bez kontroli składni. W tym wpisie postaram się omówić wszystko, co najważniejsze.

1. Kim jest Superużytkownik (root)?

W systemach z rodziny Linux użytkownik root to nadrzędne konto administracyjne o nieograniczonych uprawnieniach.

⚠️ Zasada najmniejszych uprawnień (Least Privilege):

Na co dzień nie pracujemy bezpośrednio na koncie root. Jedna literówka w komendzie (np. niefortunne rm -rf /) może całkowicie zniszczyć system. Zamiast tego pracujemy jako zwykły użytkownik i podnosimy uprawnienia tylko wtedy, gdy jest to konieczne.

2. Podnoszenie uprawnień: su vs sudo

CKE uwielbia testować zrozumienie różnicy między tymi dwoma mechanizmami - zarówno w testach teoretycznych, jak i w części praktycznej.

A. Polecenie su (Switch User / Substitute User)

Służy do przełączenia się na konto innego użytkownika (domyślnie na roota).

B. Polecenie sudo (SuperUser DO)

Pozwala autoryzowanemu użytkownikowi wykonać pojedyncze polecenie z uprawnieniami roota.

Podsumowanie różnic

Cecha su - sudo <polecenie>
Pytanie o hasło Pyta o hasło roota Pyta o hasło użytkownika
Zakres Przełącza całą sesję na roota Daje uprawnienia tylko do wskazanego polecenia
Konto root w systemie Musi być odblokowane / mieć ustawione hasło Może być zablokowane (np. domyślnie w Ubuntu)
Logowanie działań Ograniczone po przełączeniu Pełny audyt każdego wywołanego polecenia