'\" t .\" Title: runuser .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Polecenia użytkownika .\" Source: util-linux 2.41 .\" Language: English .\" .TH "RUNUSER" "1" "2025-03-29" "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" "."