'\" t
.\"     Title: runuser
.\"    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 "RUNUSER" "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"
runuser \- uruchamia polecenie z innymi identyfikatorami użytkownika i grupy
.SH "SKŁADNIA"
.sp
\fBrunuser\fP [opcje] \fB\-u\fP \fIużytkownik\fP [[\-\-] \fIpolecenie\fP [\fIargument\fP...]]
.sp
\fBrunuser\fP [opcje] [\fB\-\fP] [\fIużytkownik\fP [\fIargument\fP...]]
.SH "OPIS"
.sp
\fBrunuser\fP może służyć do uruchomienia poleceń z podstawionym identyfikatorem użytkownika i grupy. Jeśli nie poda się opcji \fB\-u\fP, \fBrunuser\fP cofa się do zachowania kompatybilnego z \fBsu\fP i uruchamia powłokę. Różnicą pomiędzy poleceniami \fBrunuser\fP i \fBsu\fP jest to, że \fBrunuser\fP nie pyta o hasło (ponieważ może być wykonane jedynie przez roota) i korzysta z innej konfiguracji PAM. Polecenie \fBrunuser\fP nie musi być instalowane z uprawieniami suid.
.sp
Jeśli sesja PAM nie jest wymagana, to zalecanym rozwiązaniem jest korzystanie z polecenia \fBsetpriv\fP(1).
.sp
Przy wywołaniu bez argumentów, \fBrunuser\fP domyślnie uruchomi powłokę interaktywną jako \fIroot\fP.
.sp
Z powodu zachowania kompatybilności wstecznej, \fBrunuser\fP domyślnie nie zmienia katalogu bieżącego oraz ustawia jedynie zmienne środowiskowe \fBHOME\fP i \fBSHELL\fP (oraz \fBUSER\fP i \fBLOGNAME\fP, jeśli docelowym \fIużytkownikiem\fP nie jest root). Niniejsza wersja \fBrunuser\fP do zarządzenia sesją korzysta z PAM.
.sp
Proszę zauważyć, że \fBrunuser\fP zawsze używa PAM (pam_getenvlist()) do końcowej modyfikacji środowiska. Opcje wiersza poleceń, takie jak \fB\-\-login\fP i \fB\-\-preserve\-environment\fP, wpływają na środowisko przed jego modyfikacją przez PAM.
.sp
Od wersji 2.38 \fBrunuser\fP resetuje limity zasobów procesów RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS i 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
Grupa podstawowa do zastosowania. Opcja ta jest dopuszczalna tylko dla roota.
.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ę zgłoszeniową (logowania) ze środowiskiem podobnym do prawdziwej powłoki zgłoszeniowej:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
czyści wszystkie zmienne środowiskowe, za 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 tj. nie ustawia \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP ani \fBLOGNAME\fP. Opcja jest ignorowana, jeśli podano też opcję \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 TIOCSTI terminala oraz innych ataków na deskryptory pliku terminala. Całą sesję można też przenieść w tło (np. \fBrunuser \-\-pty\fP \fB\-u\fP \fIużytkownik\fP \fB\-\-\fP \fIpolecenie\fP \fB&\fP). Jeśli włączono pseudoterminal, to \fBrunuser\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" | runuser \-\-pty \-u\fP \fIużytkownik\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. Powłoka do uruchomienia jest wybierana wedle poniższych reguł, 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 określona w 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
.sp
Jeśli docelowy użytkownik ma okrojoną powłokę (tj. nie wypisaną w \fI/etc/shells\fP), to opcja \fB\-\-shell\fP oraz zmienne środowiskowe \fBSHELL\fP są ignorowane, chyba że wywołującym jest root.
.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\-u\fP, \fB\-\-user\fP=\fIużytkownik\fP
.RS 4
Uruchamia \fIpolecenie\fP z efektywnym identyfikatorem użytkownika i identyfikatorem grupy \fIużytkownika\fP.
.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 "PLIKI KONFIGURACYJNE"
.sp
\fBrunuser\fP odczytuje pliki konfiguracyjne \fI/etc/default/runuser\fP i \fI/etc/login.defs\fP. Istotne dla \fBrunuser\fP są następujące pozycje konfiguracji:
.sp
\fBENV_PATH\fP (łańcuch)
.RS 4
Określa zmienną środowiskową PATH 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 (tak) i nie podano \fB\-\-login\fP i \fB\-\-preserve\-environment\fP, \fBrunuser\fP zainicjuje \fBPATH\fP.
.RE
.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)).
.SH "STATUS ZAKOŃCZENIA"
.sp
\fBrunuser\fP zwykle zwraca status zakończenia wykonywanego polecenia. Jeśli polecenie zostało zabite sygnałem, \fBrunuser\fP zwraca numer sygnału plus 128.
.sp
Status zakończenia wygenerowany samodzielnie przez \fBrunuser\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/runuser\fP
.RS 4
domyślny plik konfiguracyjny PAM
.RE
.sp
\fI/etc/pam.d/runuser\-l\fP
.RS 4
plik konfiguracyjny PAM, jeśli podano \fB\-\-login\fP
.RE
.sp
\fI/etc/default/runuser\fP
.RS 4
plik konfiguracyjny logindef programu runuser
.RE
.sp
\fI/etc/login.defs\fP
.RS 4
globalny plik konfiguracyjny logindef
.RE
.SH "HISTORIA"
.sp
Niniejsze polecenie \fBrunuser\fP wywodzi się z \fBsu\fP z coreutils, które powstało w oparciu o implementację Davida MacKenziego, i polecenia \fBrunuser\fP Fedory, autorstwa Dana Walsha.
.SH "ZOBACZ TAKŻE"
.sp
\fBsetpriv\fP(1), \fBsu\fP(1), \fBlogin.defs\fP(5), \fBshells\fP(5), \fBpam\fP(8)
.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 \fBrunuser\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" "."
