Przejdź do głównej zawartości

sudo


sudo służy do uruchamiania pojedynczych poleceń z uprawnieniami innego użytkownika, zwykle root. Działa na podstawie reguł zapisanych w pliku konfiguracyjnym /etc/sudoers, które określają, kto może uruchamiać jakie polecenia i na czyim koncie.

  • Zastosowania: administracja systemem, instalowanie oprogramowania, zmiana konfiguracji systemowej, wykonywanie operacji wymagających wyższych uprawnień.
  • Dostępność: wszystkie dystrybucje Linux, systemy Unix, macOS (z wbudowanym sudo).

Okno terminala
sudo [opcje] polecenie [argumenty]
  • Warianty wywołania: pojedyncze polecenie, sekwencja poleceń z łącznikiem && lub ;, uruchamianie powłoki z uprawnieniami innego użytkownika.
  • Najczęstsze opcje: -u, -i, -s, -k, -l.

ParametrOpis
polecenie [argumenty]Polecenie do wykonania z podwyższonymi uprawnieniami.
-u użytkownikWskazuje konto użytkownika, jako które zostanie uruchomione polecenie (domyślnie root).
-iUruchamia powłokę logowania jako docelowy użytkownik.
-sUruchamia interaktywną powłokę bez pełnego logowania.
-kUnieważnia zapamiętane uwierzytelnienie, wymuszając ponowne podanie hasła.
-lWyświetla listę dozwolonych (lub zabronionych) poleceń dla bieżącego użytkownika.
-vOdświeża czas ważności uwierzytelnienia, nie uruchamiając polecenia.

Okno terminala
# Uruchomienie polecenia z uprawnieniami administratora
sudo apt update
Okno terminala
# Wykonanie polecenia jako inny użytkownik
sudo -u jan ls /home/jan
Okno terminala
# Uruchomienie powłoki logowania jako root
sudo -i

  • Plik /etc/sudoers powinien być edytowany wyłącznie za pomocą visudo, aby uniknąć błędów składniowych.
  • Czas ważności uwierzytelnienia zależy od konfiguracji (domyślnie ok. 5 minut bezczynności).
  • Zbyt szerokie reguły w sudoers mogą stanowić ryzyko bezpieczeństwa.
  • Na macOS sudo jest wbudowane i działa podobnie, ale integruje się z mechanizmami systemowymi.

Błąd / KomunikatPrzyczynaRozwiązanie
user is not in the sudoers fileBrak odpowiedniego wpisu w /etc/sudoers.Dodaj użytkownika do grupy sudo/admin lub zmodyfikuj sudoers przez visudo jako root.
Sorry, try again.Niepoprawne hasło.Upewnij się, że podajesz hasło swojego konta, a nie docelowego użytkownika.
sudo: command not foundBrak zainstalowanego pakietu sudo.Zainstaluj pakiet sudo (np. apt install sudo).
permission denied mimo sudoKomenda jest blokowana przez sudoers lub SELinux/AppArmor.Sprawdź konfigurację sudoers oraz reguły bezpieczeństwa systemu.