Provided by: util-linux-locales_2.41-4ubuntu3_all bug

NAZWA

       su - uruchamia polecenie ze zmienionymi identyfikatorami użytkownika i grupy

SKŁADNIA

       su [opcje] [-] [użytkownik [argument...]]

OPIS

       su pozwala uruchomić polecenie ze zmienionymi identyfikatorami użytkownika i grupy.

       Wywołany bez określenia użytkownika, su domyślnie uruchomi powłokę interaktywną jako root. Wskazując
       użytkownika można podać dodatkowe argumenty, które zostaną przekazane do powłoki.

       Ze względu na kompatybilność, su domyślnie nie zmienia bieżącego katalogu, lecz ustawia jedynie zmienne
       środowiskowe HOME (katalog domowy) i SHELL (powłoka), a jeśli docelowym użytkownikiem nie jest root,
       dodatkowo USER (użytkownik) i LOGNAME (nazwa logowania). Zaleca się zawsze korzystać z opcji --login
       (zamiast jej skrótu -), aby uniknąć efektów ubocznych spowodowanych mieszanym środowiskiem.

       Niniejsza wersja su do uwierzytelniania oraz do zarządzania kontami i sesją używa PAM. Część opcji
       konfiguracyjnych, które istnieją w innych implementacjach su, takie jak obsługa grupy wheel, należy
       ustawić za pomocą PAM.

       su jest przeznaczony głównie dla użytkowników nieuprzywilejowanych; zalecanym rozwiązaniem dla
       użytkowników uprzywilejowanych (np. skryptów wykonywanych przez roota) jest korzystanie z polecenia
       runuser(1), które nie wykorzystuje uprawnienia ustawienia ID użytkownika podczas wykonania (suid), nie
       wymaga uwierzytelnienia i udostępnia oddzielną konfigurację PAM. Jeśli sesja PAM nie jest wymagana,
       zaleca się użycie polecenia setpriv(1).

       Proszę zauważyć, że su we wszystkich przypadkach używa PAM (pam_getenvlist(3)) do końcowej zmiany
       środowiska. Opcje wiersza poleceń takie jak --login i --preserve-environment wpływają na środowisko przed
       jego zmianą przez PAM.

       Od wersji 2.38 su resetuje limity zasobów procesu: RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS
       oraz RLIMIT_NOFILE.

OPCJE

       -c, --command polecenie
           Przekazuje polecenie do powłoki za pomocą opcji -c.

       -f, --fast
           Przekazuje -f powłoce, co może, ale nie musi być przydatne, w zależności od powłoki.

       -g, --group grupa
           Określa podstawową grupę. Opcja jest dostępna tylko dla użytkownika root.

       -G, --supp-group grupa
           Określa dodatkową grupę. Opcja jest dostępna tylko dla użytkownika root. Pierwsza podana grupa
           dodatkowa jest używana jako grupa podstawowa, jeśli nie podano jej opcją --group.

       -, -l, --login
           Uruchamia powłokę jako powłokę logowania ze środowiskiem podobnym do rzeczywistego logowania.

           Proszę zauważyć, że w systemach korzystających z systemd, nowa sesja może być zdefiniowana jako
           rzeczywisty punkt wejściowy do systemu. Jednak su nie tworzy rzeczywistej sesji (poprzez PAM) z tego
           punktu widzenia. Aby zainicjować pełną, rzeczywistą sesję trzeba użyć narzędzi takich jak systemd-run
           lub machinectl.

           su:

           •   czyści wszystkie zmienne środowiskowe z wyjątkiem TERM i zmiennych podanych opcją
               --whitelist-environment

           •   inicjuje zmienne środowiskowe HOME, SHELL, USER, LOGNAME i PATH

           •   zmienia katalog na katalog domowy docelowego użytkownika

           •   ustawia argv[0] powłoki na "-", aby uczynić z powłoki powłokę logowania

       -m, -p, --preserve-environment
           Zachowuje całe środowisko, tzn. nie ustawia HOME, SHELL, USER ani LOGNAME. Opcja jest ignorowana,
           jeśli podano także --login.

       -P, --pty
           Tworzy pseudoterminal dla sesji. Niezależny terminal zapewnia lepsze bezpieczeństwo, ponieważ
           użytkownik nie dzieli terminala z pierwotną sesją. W ten sposób unika się wstrzyknięcia ioctl TIOCSTI
           terminala oraz innych ataków na deskryptory pliku terminala. Całą sesję można też przenieść w tło
           (np. su --pty - użytkowik -c aplikacja &). Jeśli włączono pseudoterminal, to su działa jako pośrednik
           między sesjami (synchronizuje standardowe wejście i wyjście).

           Funkcja ta jest zaprojektowana głównie z myślą o powłokach interaktywnych. Jeśli standardowym
           wejściem nie jest terminal, lecz na przykład potok (np. echo "date" | su --pty), to flaga ECHO
           pseudoterminala jest wyłączana, aby uniknąć zabałaganionego wyjścia.

       -s, --shell powłoka
           Uruchamia podaną powłokę zamiast domyślnej. Jeśli użytkownik docelowy ma ograniczoną powłokę (tzn.
           niewypisaną w /etc/shells), to opcja --shell i zmienne środowiskowe SHELL są ignorowane, chyba że
           wywołującym użytkownikiem jest root.

           Powłoka do uruchomienia jest wybierana zgodnie z podanymi regułami, w kolejności:

           •   powłoka podana opcją --shell

           •   powłoka ze zmiennej środowiskowej SHELL, jeśli podano opcję --preserve-environment

           •   powłoka podana we wpisie passwd docelowego użytkownika

           •   /bin/sh

       --session-command=polecenie
           Jak -c, lecz nie tworzy nowej sesji (niezalecane).

       -T, --no-pty
           Nie tworzy pseudoterminala; przeciwieństwo --pty i -P. Proszę zauważyć, że działanie bez
           pseudoterminala stanowi ryzyko eskalacji przywilejów poprzez wstrzyknięcie polecenia
           TIOCSTI/TIOCLINUX ioctl.

       -w, --whitelist-environment lista
           Nie resetuje zmiennych środowiskowych określonych w liście (używającej przecinka jako separatora)
           przy czyszczeniu środowiska do --login. Biała lista jest ignorowana w przypadku zmiennych
           środowiskowych HOME, SHELL, USER, LOGNAME i PATH.

       -h, --help
           Wyświetla ten tekst i wychodzi.

       -V, --version
           Wyświetla wersję i wychodzi.

SYGNAŁY

       Po otrzymaniu jednego z sygnałów SIGINT, SIGQUIT lub SIGTERM, su używa go do zakończenia procesu
       potomnego, a później siebie samego. Jeśli proces potomny jest kończony sygnałem SIGTERM, to po nieudanej
       próbie i odczekaniu 2 sekund, proces jest zabijany za pomocą SIGKILL.

PLIKI KONFIGURACYJNE

       su odczytuje pliki konfiguracyjne /etc/default/su i /etc/login.defs. Istotne dla su są następujące
       pozycje konfiguracji:

       FAIL_DELAY (liczba)
           Odstęp w sekundach po nieudanym uwierzytelnieniu. Musi być to całkowita liczba nieujemna.

       ENV_PATH (łańcuch)
           Określa zmienną środowiskową PATH dla zwykłego użytkownika. Wartością domyślną jest
           /usr/local/bin:/bin:/usr/bin.

       ENV_ROOTPATH (łańcuch), ENV_SUPATH (łańcuch)
           Określa zmienną środowiskową PATH dla roota. ENV_SUPATH ma pierwszeństwo. Wartością domyślną jest
           /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

       ALWAYS_SET_PATH (wartość logiczna)
           Jeśli jest ustawiona na yes, to w przypadku gdy nie podano --login ani --preserve-environment, su
           inicjuje PATH.

           Zmienna środowiskowa PATH może być odmienna w systemach, w których /bin i /sbin połączono z /usr; na
           tę zmienną ma też wpływ opcja wiersza poleceń --login oraz ustawienia systemu PAM (np. pam_env(8)).

STATUS ZAKOŃCZENIA

       su zwykle kończy się ze statusem zakończenia wykonywanego polecenia. Jeśli polecenie zabito sygnałem, su
       zwróci numer sygnału zwiększony o 128.

       Statusy zakończenia generowane przez sam program su:

       1
           Ogólny błąd przed wykonaniem żądanego polecenia

       126
           Żądane polecenie nie mogło być wykonane

       127
           Nie znaleziono żądanego polecenia

PLIKI

       /etc/pam.d/su
           domyślny plik konfiguracyjny PAM

       /etc/pam.d/su-l
           plik konfiguracyjny PAM, jeśli podano --login

       /etc/default/su
           plik konfiguracyjny logindef przypisany do polecenia

       /etc/login.defs
           globalny plik konfiguracyjny logindef

UWAGI

       Ze względów bezpieczeństwa, su zawsze odnotowuje nieudane próby logowania w pliku btmp, lecz w ogóle nie
       pisze do pliku lastlog. To rozwiązanie można wykorzystać do kontroli zachowania su poprzez konfigurację
       PAM. Jeśli moduł pam_lastlog(8) ma wypisywać ostrzeżenie o nieudanych próbach logowania, należy
       skonfigurować pam_lastlog(8) tak, aby aktualizował również plik lastlog. Przykładowo:

          session required pam_lastlog.so nowtmp

HISTORIA

       To polecenie su pochodzi z su coreutils, które powstało w oparciu o implementację Davida MacKenziego.
       Wersję util-linux zrefaktoryzował Karel Zak.

ZOBACZ TAKŻE

       setpriv(1), login.defs(5), shells(5), pam(8), runuser(1)

ZGŁASZANIE BŁĘDÓW

       Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.

DOSTĘPNOŚĆ

       Polecenie su jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux
       <https://www.kernel.org/pub/linux/utils/util-linux/>.

util-linux 2.41                                    2025-07-02                                              SU(1)