Przejdź do głównej zawartości

su


su służy do przełączania kontekstu użytkownika w systemie Linux/Unix, zazwyczaj na konto administratora root lub innego wskazanego użytkownika. Może otworzyć interaktywną powłokę lub uruchomić pojedyncze polecenie z uprawnieniami docelowego konta.

  • Zastosowania: administracja systemem, wykonywanie zadań wymagających wyższych uprawnień, testowanie środowiska innego użytkownika.
  • Dostępność: wszystkie dystrybucje Linux, systemy Unix, macOS (z różnicami w opcjach).

Okno terminala
su [opcje] [użytkownik [argumenty_polecenia]]
  • Warianty wywołania: zmiana użytkownika i uruchomienie powłoki lub pojedynczego polecenia.
  • Najczęstsze opcje: -l/--login, -c, -s, -, --preserve-environment.

ParametrOpis
użytkownikNazwa docelowego konta (domyślnie root).
-l, --login lub -Pełna sesja logowania: czyści środowisko, ustawia katalog domowy i zmienne jak przy logowaniu.
-c polecenieUruchamia tylko wskazane polecenie i kończy sesję.
-s powłokaWybiera inną powłokę niż domyślna dla użytkownika.
--preserve-environmentZachowuje bieżące zmienne środowiskowe zamiast ustawiania domyślnych.

Okno terminala
# Zmiana użytkownika na root i uruchomienie powłoki logowania
su -
Okno terminala
# Wykonanie polecenia jako inny użytkownik
su jan -c 'ls -l /home/jan'
Okno terminala
# Zmiana użytkownika i wybór innej powłoki
su -s /bin/sh

  • Wymaga podania hasła użytkownika docelowego, chyba że bieżący użytkownik jest root.
  • Użycie su może być logowane w /var/log/auth.log.
  • Różnice między su a sudo: sudo uruchamia pojedyncze polecenia z innym UID, su zmienia kontekst całej sesji.

Błąd / KomunikatPrzyczynaRozwiązanie
su: Authentication failureNiepoprawne hasło lub brak uprawnień.Upewnij się, że wpisujesz właściwe hasło; sprawdź konfigurację /etc/pam.d/su i grupy uprawnień (np. wheel).
su: user ... does not existNieistniejący użytkownik.Sprawdź listę użytkowników (getent passwd).
Permission denied przy poleceniach po zmianie użytkownikaBrak uprawnień w systemie plików lub zasobach.Dostosuj prawa lub użyj właściwego konta.