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

NAZWA

       runuser - uruchamia polecenie z innymi identyfikatorami użytkownika i grupy

SKŁADNIA

       runuser [opcje] -u użytkownik [[--] polecenie [argument...]]

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

OPIS

       runuser może służyć do uruchomienia poleceń z podstawionym identyfikatorem użytkownika i grupy. Jeśli nie
       poda się opcji -u, runuser cofa się do zachowania kompatybilnego z su i uruchamia powłokę. Różnicą
       pomiędzy poleceniami runuser i su jest to, że runuser nie pyta o hasło (ponieważ może być wykonane
       jedynie przez roota) i korzysta z innej konfiguracji PAM. Polecenie runuser nie musi być instalowane z
       uprawieniami suid.

       Jeśli sesja PAM nie jest wymagana, to zalecanym rozwiązaniem jest korzystanie z polecenia setpriv(1).

       Przy wywołaniu bez argumentów, runuser domyślnie uruchomi powłokę interaktywną jako root.

       Z powodu zachowania kompatybilności wstecznej, runuser domyślnie nie zmienia katalogu bieżącego oraz
       ustawia jedynie zmienne środowiskowe HOME i SHELL (oraz USER i LOGNAME, jeśli docelowym użytkownikiem nie
       jest root). Niniejsza wersja runuser do zarządzenia sesją korzysta z PAM.

       Proszę zauważyć, że runuser zawsze używa PAM (pam_getenvlist()) do końcowej modyfikacji środowiska. Opcje
       wiersza poleceń, takie jak --login i --preserve-environment, wpływają na środowisko przed jego
       modyfikacją przez PAM.

       Od wersji 2.38 runuser resetuje limity zasobów procesów RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE,
       RLIMIT_AS i 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
           Grupa podstawowa do zastosowania. Opcja ta jest dopuszczalna tylko dla roota.

       -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ę zgłoszeniową (logowania) ze środowiskiem podobnym do prawdziwej
           powłoki zgłoszeniowej:

           •   czyści wszystkie zmienne środowiskowe, za 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 tj. nie ustawia HOME, SHELL, USER ani LOGNAME. Opcja jest ignorowana, jeśli
           podano też opcję --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. runuser --pty -u użytkownik -- polecenie &). Jeśli włączono pseudoterminal, to runuser 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" | runuser --pty -u użytkownik)),
           to flaga ECHO pseudoterminala jest wyłączana, aby uniknąć zabałaganionego wyjścia.

       -s, --shell=powłoka
           Uruchamia podaną powłokę zamiast domyślnej. Powłoka do uruchomienia jest wybierana wedle poniższych
           reguł, w kolejności:

           •   powłoka podana opcją --shell

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

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

           •   /bin/sh

               Jeśli docelowy użytkownik ma okrojoną powłokę (tj. nie wypisaną w /etc/shells), to opcja --shell
               oraz zmienne środowiskowe SHELL są ignorowane, chyba że wywołującym jest root.

       --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.

       -u, --user=użytkownik
           Uruchamia polecenie z efektywnym identyfikatorem użytkownika i identyfikatorem grupy użytkownika.

       -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.

PLIKI KONFIGURACYJNE

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

       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 (tak) i nie podano --login i --preserve-environment, runuser zainicjuje
           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

       runuser zwykle zwraca status zakończenia wykonywanego polecenia. Jeśli polecenie zostało zabite sygnałem,
       runuser zwraca numer sygnału plus 128.

       Status zakończenia wygenerowany samodzielnie przez runuser:

       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/runuser
           domyślny plik konfiguracyjny PAM

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

       /etc/default/runuser
           plik konfiguracyjny logindef programu runuser

       /etc/login.defs
           globalny plik konfiguracyjny logindef

HISTORIA

       Niniejsze polecenie runuser wywodzi się z su z coreutils, które powstało w oparciu o implementację Davida
       MacKenziego, i polecenia runuser Fedory, autorstwa Dana Walsha.

ZOBACZ TAKŻE

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

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 runuser 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                                         RUNUSER(1)