'\" t
.\"     Title: su
.\"    Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.23
.\"      Date: 2025-04-09
.\"    Manual: Polecenia użytkownika
.\"    Source: util-linux 2.41
.\"  Language: English
.\"
.TH "SU" "1" "2025-04-09" "util\-linux 2.41" "Polecenia użytkownika"
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
.  mso www.tmac
.  am URL
.    ad l
.  .
.  am MTO
.    ad l
.  .
.  LINKSTYLE blue R < >
.\}
.SH "NAZWA"
su \- uruchamia polecenie ze zmienionymi identyfikatorami użytkownika i grupy
.SH "SKŁADNIA"
.sp
\fBsu\fP [opcje] [\fB\-\fP] [\fIużytkownik\fP [\fIargument\fP...]]
.SH "OPIS"
.sp
\fBsu\fP pozwala uruchomić polecenie ze zmienionymi identyfikatorami użytkownika i grupy.
.sp
Wywołany bez określenia \fIużytkownika\fP, \fBsu\fP domyślnie uruchomi powłokę interaktywną jako \fIroot\fP. Wskazując \fIużytkownika\fP można podać dodatkowe \fIargumenty\fP, które zostaną przekazane do powłoki.
.sp
Ze względu na kompatybilność, \fBsu\fP domyślnie nie zmienia bieżącego katalogu, lecz ustawia jedynie zmienne środowiskowe \fBHOME\fP (katalog domowy) i \fBSHELL\fP (powłoka), a jeśli docelowym \fIużytkownikiem\fP nie jest root, dodatkowo \fBUSER\fP (użytkownik) i \fBLOGNAME\fP (nazwa logowania). Zaleca się zawsze korzystać z opcji \fB\-\-login\fP (zamiast jej skrótu \fB\-\fP), aby uniknąć efektów ubocznych spowodowanych mieszanym środowiskiem.
.sp
Niniejsza wersja \fBsu\fP do uwierzytelniania oraz do zarządzania kontami i sesją używa PAM. Część opcji konfiguracyjnych, które istnieją w innych implementacjach \fBsu\fP, takie jak obsługa grupy wheel, należy ustawić za pomocą PAM.
.sp
\fBsu\fP 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 \fBrunuser\fP(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 \fBsetpriv\fP(1).
.sp
Proszę zauważyć, że \fBsu\fP we wszystkich przypadkach używa PAM (\fBpam_getenvlist\fP(3)) do końcowej zmiany środowiska. Opcje wiersza poleceń takie jak \fB\-\-login\fP i \fB\-\-preserve\-environment\fP wpływają na środowisko przed jego zmianą przez PAM.
.sp
Od wersji 2.38 \fBsu\fP resetuje limity zasobów procesu: RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS oraz RLIMIT_NOFILE.
.SH "OPCJE"
.sp
\fB\-c\fP, \fB\-\-command\fP \fIpolecenie\fP
.RS 4
Przekazuje \fIpolecenie\fP do powłoki za pomocą opcji \fB\-c\fP.
.RE
.sp
\fB\-f\fP, \fB\-\-fast\fP
.RS 4
Przekazuje \fB\-f\fP powłoce, co może, ale nie musi być przydatne, w zależności od powłoki.
.RE
.sp
\fB\-g\fP, \fB\-\-group\fP \fIgrupa\fP
.RS 4
Określa podstawową grupę. Opcja jest dostępna tylko dla użytkownika root.
.RE
.sp
\fB\-G\fP, \fB\-\-supp\-group\fP \fIgrupa\fP
.RS 4
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ą \fB\-\-group\fP.
.RE
.sp
\fB\-\fP, \fB\-l\fP, \fB\-\-login\fP
.RS 4
Uruchamia powłokę jako powłokę logowania ze środowiskiem podobnym do rzeczywistego logowania.
.sp
Proszę zauważyć, że w systemach korzystających z systemd, nowa sesja może być zdefiniowana jako rzeczywisty punkt wejściowy do systemu. Jednak \fBsu\fP nie tworzy rzeczywistej sesji (poprzez PAM) z tego punktu widzenia. Aby zainicjować pełną, rzeczywistą sesję trzeba użyć narzędzi takich jak \fBsystemd\-run\fP lub \fBmachinectl\fP.
.sp
\fBsu\fP:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
czyści wszystkie zmienne środowiskowe z wyjątkiem \fBTERM\fP i zmiennych podanych opcją \fB\-\-whitelist\-environment\fP
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
inicjuje zmienne środowiskowe \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP i \fBPATH\fP
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
zmienia katalog na katalog domowy docelowego użytkownika
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
ustawia argv[0] powłoki na "\fB\-\fP", aby uczynić z powłoki powłokę logowania
.RE
.RE
.sp
\fB\-m\fP, \fB\-p\fP, \fB\-\-preserve\-environment\fP
.RS 4
Zachowuje całe środowisko, tzn. nie ustawia \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP ani \fBLOGNAME\fP. Opcja jest ignorowana, jeśli podano także \fB\-\-login\fP.
.RE
.sp
\fB\-P\fP, \fB\-\-pty\fP
.RS 4
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 \fBTIOCSTI\fP terminala oraz innych ataków na deskryptory pliku terminala. Całą sesję można też przenieść w tło (np. \fBsu \-\-pty\fP \fB\-\fP \fIużytkowik\fP \fB\-c\fP \fIaplikacja\fP \fB&\fP). Jeśli włączono pseudoterminal, to \fBsu\fP działa jako pośrednik między sesjami (synchronizuje standardowe wejście i wyjście).
.sp
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. \fBecho "date" | su \-\-pty\fP), to flaga \fBECHO\fP pseudoterminala jest wyłączana, aby uniknąć zabałaganionego wyjścia.
.RE
.sp
\fB\-s\fP, \fB\-\-shell\fP \fIpowłoka\fP
.RS 4
Uruchamia podaną \fIpowłokę\fP zamiast domyślnej. Jeśli użytkownik docelowy ma ograniczoną powłokę (tzn. niewypisaną w \fI/etc/shells\fP), to opcja \fB\-\-shell\fP i zmienne środowiskowe \fBSHELL\fP są ignorowane, chyba że wywołującym użytkownikiem jest root.
.sp
Powłoka do uruchomienia jest wybierana zgodnie z podanymi regułami, w kolejności:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
powłoka podana opcją \fB\-\-shell\fP
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
powłoka ze zmiennej środowiskowej \fBSHELL\fP, jeśli podano opcję \fB\-\-preserve\-environment\fP
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
powłoka podana we wpisie passwd docelowego użytkownika
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
/bin/sh
.RE
.RE
.sp
\fB\-\-session\-command=\fP\fIpolecenie\fP
.RS 4
Jak \fB\-c\fP, lecz nie tworzy nowej sesji (niezalecane).
.RE
.sp
\fB\-T\fP, \fB\-\-no\-pty\fP
.RS 4
Nie tworzy pseudoterminala; przeciwieństwo \fB\-\-pty\fP i \fB\-P\fP. Proszę zauważyć, że działanie bez pseudoterminala stanowi ryzyko eskalacji przywilejów poprzez wstrzyknięcie polecenia TIOCSTI/TIOCLINUX ioctl.
.RE
.sp
\fB\-w\fP, \fB\-\-whitelist\-environment\fP \fIlista\fP
.RS 4
Nie resetuje zmiennych środowiskowych określonych w \fIliście\fP (używającej przecinka jako separatora) przy czyszczeniu środowiska do \fB\-\-login\fP. Biała lista jest ignorowana w przypadku zmiennych środowiskowych \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP i \fBPATH\fP.
.RE
.sp
\fB\-h\fP, \fB\-\-help\fP
.RS 4
Wyświetla ten tekst i wychodzi.
.RE
.sp
\fB\-V\fP, \fB\-\-version\fP
.RS 4
Wyświetla wersję i wychodzi.
.RE
.SH "SYGNAŁY"
.sp
Po otrzymaniu jednego z sygnałów \fBSIGINT\fP, \fBSIGQUIT\fP lub \fBSIGTERM\fP, \fBsu\fP używa go do zakończenia procesu potomnego, a później siebie samego. Jeśli proces potomny jest kończony sygnałem \fBSIGTERM\fP, to po nieudanej próbie i odczekaniu 2 sekund, proces jest zabijany za pomocą \fBSIGKILL\fP.
.SH "PLIKI KONFIGURACYJNE"
.sp
\fBsu\fP odczytuje pliki konfiguracyjne \fI/etc/default/su\fP i \fI/etc/login.defs\fP. Istotne dla \fBsu\fP są następujące pozycje konfiguracji:
.sp
\fBFAIL_DELAY\fP (liczba)
.RS 4
Odstęp w sekundach po nieudanym uwierzytelnieniu. Musi być to całkowita liczba nieujemna.
.RE
.sp
\fBENV_PATH\fP (łańcuch)
.RS 4
Określa zmienną środowiskową \fBPATH\fP dla zwykłego użytkownika. Wartością domyślną jest \fI/usr/local/bin:/bin:/usr/bin\fP.
.RE
.sp
\fBENV_ROOTPATH\fP (łańcuch), \fBENV_SUPATH\fP (łańcuch)
.RS 4
Określa zmienną środowiskową \fBPATH\fP dla roota. \fBENV_SUPATH\fP ma pierwszeństwo. Wartością domyślną jest \fI/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\fP.
.RE
.sp
\fBALWAYS_SET_PATH\fP (wartość logiczna)
.RS 4
Jeśli jest ustawiona na \fIyes\fP, to w przypadku gdy nie podano \fB\-\-login\fP ani \fB\-\-preserve\-environment\fP, \fBsu\fP inicjuje \fBPATH\fP.
.sp
Zmienna środowiskowa \fBPATH\fP może być odmienna w systemach, w których \fI/bin\fP i \fI/sbin\fP połączono z \fI/usr\fP; na tę zmienną ma też wpływ opcja wiersza poleceń \fB\-\-login\fP oraz ustawienia systemu PAM (np. \fBpam_env\fP(8)).
.RE
.SH "STATUS ZAKOŃCZENIA"
.sp
\fBsu\fP zwykle kończy się ze statusem zakończenia wykonywanego polecenia. Jeśli polecenie zabito sygnałem, \fBsu\fP zwróci numer sygnału zwiększony o 128.
.sp
Statusy zakończenia generowane przez sam program \fBsu\fP:
.sp
1
.RS 4
Ogólny błąd przed wykonaniem żądanego polecenia
.RE
.sp
126
.RS 4
Żądane polecenie nie mogło być wykonane
.RE
.sp
127
.RS 4
Nie znaleziono żądanego polecenia
.RE
.SH "PLIKI"
.sp
\fI/etc/pam.d/su\fP
.RS 4
domyślny plik konfiguracyjny PAM
.RE
.sp
\fI/etc/pam.d/su\-l\fP
.RS 4
plik konfiguracyjny PAM, jeśli podano \fB\-\-login\fP
.RE
.sp
\fI/etc/default/su\fP
.RS 4
plik konfiguracyjny logindef przypisany do polecenia
.RE
.sp
\fI/etc/login.defs\fP
.RS 4
globalny plik konfiguracyjny logindef
.RE
.SH "UWAGI"
.sp
Ze względów bezpieczeństwa, \fBsu\fP zawsze odnotowuje nieudane próby logowania w pliku \fIbtmp\fP, lecz w ogóle nie pisze do pliku \fIlastlog\fP. To rozwiązanie można wykorzystać do kontroli zachowania \fBsu\fP poprzez konfigurację PAM. Jeśli moduł \fBpam_lastlog\fP(8) ma wypisywać ostrzeżenie o nieudanych próbach logowania, należy skonfigurować \fBpam_lastlog\fP(8) tak, aby aktualizował również plik \fIlastlog\fP. Przykładowo:
.RS 3
.ll -.6i
.sp
session required pam_lastlog.so nowtmp
.br
.RE
.ll
.SH "HISTORIA"
.sp
To polecenie \fBsu\fP pochodzi z \fBsu\fP coreutils, które powstało w oparciu o implementację Davida MacKenziego. Wersję util\-linux zrefaktoryzował Karel Zak.
.SH "ZOBACZ TAKŻE"
.sp
\fBsetpriv\fP(1), \fBlogin.defs\fP(5), \fBshells\fP(5), \fBpam\fP(8), \fBrunuser\fP(1)
.SH "ZGŁASZANIE BŁĘDÓW"
.sp
Problemy należy zgłaszać w \c
.URL "https://github.com/util\-linux/util\-linux/issues" "systemie śledzenia błędów" "."
.SH "DOSTĘPNOŚĆ"
.sp
Polecenie \fBsu\fP jest częścią pakietu util\-linux, który można pobrać ze strony \c
.URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Archiwum jądra Linux" "."
