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).
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
.
Parametr Opis użytkownik
Nazwa docelowego konta (domyślnie root
). -l
, --login
lub -
Pełna sesja logowania: czyści środowisko, ustawia katalog domowy i zmienne jak przy logowaniu. -c polecenie
Uruchamia tylko wskazane polecenie i kończy sesję. -s powłoka
Wybiera inną powłokę niż domyślna dla użytkownika. --preserve-environment
Zachowuje bieżące zmienne środowiskowe zamiast ustawiania domyślnych.
# Zmiana użytkownika na root i uruchomienie powłoki logowania
# Wykonanie polecenia jako inny użytkownik
su jan -c ' ls -l /home/jan '
# Zmiana użytkownika i wybór innej powłoki
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 / Komunikat Przyczyna Rozwiązanie su: Authentication failure
Niepoprawne 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 exist
Nieistnieją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.