RUNUSER(1) Polecenia uzytkownika RUNUSER(1) NAZWA runuser - uruchamia polecenie z innymi identyfikatorami uzytkownika i grupy SKLADNIA runuser [opcje] -u uzytkownik [[--] polecenie [argument...]] runuser [opcje] [-] [uzytkownik [argument...]] OPIS runuser moze sluzyc do uruchomienia polecen z podstawionym identyfikatorem uzytkownika i grupy. Jesli nie poda sie opcji -u, runuser cofa sie do zachowania kompatybilnego z su i uruchamia powloke. Roznica pomiedzy poleceniami runuser i su jest to, ze runuser nie pyta o haslo (poniewaz moze byc wykonane jedynie przez roota) i korzysta z innej konfiguracji PAM. Polecenie runuser nie musi byc instalowane z uprawieniami suid. Jesli sesja PAM nie jest wymagana, to zalecanym rozwiazaniem jest korzystanie z polecenia setpriv(1). Przy wywolaniu bez argumentow, runuser domyslnie uruchomi powloke interaktywna jako root. Z powodu zachowania kompatybilnosci wstecznej, runuser domyslnie nie zmienia katalogu biezacego oraz ustawia jedynie zmienne srodowiskowe HOME i SHELL (oraz USER i LOGNAME, jesli docelowym uzytkownikiem nie jest root). Niniejsza wersja runuser do zarzadzenia sesja korzysta z PAM. Prosze zauwazyc, ze runuser zawsze uzywa PAM (pam_getenvlist()) do koncowej modyfikacji srodowiska. Opcje wiersza polecen, takie jak --login i --preserve-environment, wplywaja na srodowisko przed jego modyfikacja przez PAM. Od wersji 2.38 runuser resetuje limity zasobow procesow RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS i RLIMIT_NOFILE. OPCJE -c, --command=polecenie Przekazuje polecenie do powloki za pomoca opcji -c. -f, --fast Przekazuje -f powloce, co moze, ale nie musi byc przydatne, w zaleznosci od powloki. -g, --group=grupa Grupa podstawowa do zastosowania. Opcja ta jest dopuszczalna tylko dla roota. -G, --supp-group=grupa Okresla dodatkowa grupe. Opcja jest dostepna tylko dla uzytkownika root. Pierwsza podana grupa dodatkowa jest uzywana jako grupa podstawowa, jesli nie podano jej opcja --group. -, -l, --login Uruchamia powloke jako powloke zgloszeniowa (logowania) ze srodowiskiem podobnym do prawdziwej powloki zgloszeniowej: o czysci wszystkie zmienne srodowiskowe, za wyjatkiem TERM i zmiennych podanych opcja --whitelist-environment o inicjuje zmienne srodowiskowe HOME, SHELL, USER, LOGNAME i PATH o zmienia katalog na katalog domowy docelowego uzytkownika o ustawia argv[0] powloki na "-", aby uczynic z powloki powloke logowania -m, -p, --preserve-environment Zachowuje cale srodowisko tj. nie ustawia HOME, SHELL, USER ani LOGNAME. Opcja jest ignorowana, jesli podano tez opcje --login. -P, --pty Tworzy pseudoterminal dla sesji. Niezalezny terminal zapewnia lepsze bezpieczenstwo, poniewaz uzytkownik nie dzieli terminala z pierwotna sesja. W ten sposob unika sie wstrzykniecia ioctl TIOCSTI terminala oraz innych atakow na deskryptory pliku terminala. Cala sesje mozna tez przeniesc w tlo (np. runuser --pty -u uzytkownik -- polecenie &). Jesli wlaczono pseudoterminal, to runuser dziala jako posrednik miedzy sesjami (synchronizuje standardowe wejscie i wyjscie). Funkcja ta jest zaprojektowana glownie z mysla o powlokach interaktywnych. Jesli standardowym wejsciem nie jest terminal, lecz na przyklad potok (np. echo "date" | runuser --pty -u uzytkownik)), to flaga ECHO pseudoterminala jest wylaczana, aby uniknac zabalaganionego wyjscia. -s, --shell=powloka Uruchamia podana powloke zamiast domyslnej. Powloka do uruchomienia jest wybierana wedle ponizszych regul, w kolejnosci: o powloka podana opcja --shell o powloka okreslona w zmiennej srodowiskowej SHELL, jesli podano opcje --preserve-environment o powloka podana we wpisie passwd docelowego uzytkownika o /bin/sh Jesli docelowy uzytkownik ma okrojona powloke (tj. nie wypisana w /etc/shells), to opcja --shell oraz zmienne srodowiskowe SHELL sa ignorowane, chyba ze wywolujacym jest root. --session-command=polecenie Jak -c, lecz nie tworzy nowej sesji (niezalecane). -T, --no-pty Nie tworzy pseudoterminala; przeciwienstwo --pty i -P. Prosze zauwazyc, ze dzialanie bez pseudoterminala stanowi ryzyko eskalacji przywilejow poprzez wstrzykniecie polecenia TIOCSTI/TIOCLINUX ioctl. -u, --user=uzytkownik Uruchamia polecenie z efektywnym identyfikatorem uzytkownika i identyfikatorem grupy uzytkownika. -w, --whitelist-environment=lista Nie resetuje zmiennych srodowiskowych okreslonych w liscie (uzywajacej przecinka jako separatora) przy czyszczeniu srodowiska do --login. Biala lista jest ignorowana w przypadku zmiennych srodowiskowych HOME, SHELL, USER, LOGNAME i PATH. -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. PLIKI KONFIGURACYJNE runuser odczytuje pliki konfiguracyjne /etc/default/runuser i /etc/login.defs. Istotne dla runuser sa nastepujace pozycje konfiguracji: ENV_PATH (lancuch) Okresla zmienna srodowiskowa PATH dla zwyklego uzytkownika. Wartoscia domyslna jest /usr/local/bin:/bin:/usr/bin. ENV_ROOTPATH (lancuch), ENV_SUPATH (lancuch) Okresla zmienna srodowiskowa PATH dla roota. ENV_SUPATH ma pierwszenstwo. Wartoscia domyslna jest /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin. ALWAYS_SET_PATH (wartosc logiczna) Jesli jest ustawiona na yes (tak) i nie podano --login i --preserve-environment, runuser zainicjuje PATH. Zmienna srodowiskowa PATH moze byc odmienna w systemach, w ktorych /bin i /sbin polaczono z /usr; na te zmienna ma tez wplyw opcja wiersza polecen --login oraz ustawienia systemu PAM (np. pam_env(8)). STATUS ZAKONCZENIA runuser zwykle zwraca status zakonczenia wykonywanego polecenia. Jesli polecenie zostalo zabite sygnalem, runuser zwraca numer sygnalu plus 128. Status zakonczenia wygenerowany samodzielnie przez runuser: 1 Ogolny blad przed wykonaniem zadanego polecenia 126 Zadane polecenie nie moglo byc wykonane 127 Nie znaleziono zadanego polecenia PLIKI /etc/pam.d/runuser domyslny plik konfiguracyjny PAM /etc/pam.d/runuser-l plik konfiguracyjny PAM, jesli podano --login /etc/default/runuser plik konfiguracyjny logindef programu runuser /etc/login.defs globalny plik konfiguracyjny logindef HISTORIA Niniejsze polecenie runuser wywodzi sie z su z coreutils, ktore powstalo w oparciu o implementacje Davida MacKenziego, i polecenia runuser Fedory, autorstwa Dana Walsha. ZOBACZ TAKZE setpriv(1), su(1), login.defs(5), shells(5), pam(8) ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie runuser jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.41 2025-03-29 RUNUSER(1)