table of contents
RUNUSER(1) | Polecenia użytkownika | RUNUSER(1) |
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
-f, --fast
-g, --group=grupa
-G, --supp-group=grupa
-, -l, --login
-m, -p, --preserve-environment
-P, --pty
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
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
-T, --no-pty
-u, --user=użytkownik
-w, --whitelist-environment=lista
-h, --help
-V, --version
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)
ENV_ROOTPATH (łańcuch), ENV_SUPATH (łańcuch)
ALWAYS_SET_PATH (wartość logiczna)
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
126
127
PLIKI¶
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/default/runuser
/etc/login.defs
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/>.
2025-04-02 | util-linux 2.41 |