Man page - runuser(1)

Packages contains this manual

Available languages:

en fr pl uk ro sr de

Manual

RUNUSER

NAZWA
SKŁADNIA
OPIS
OPCJE
PLIKI KONFIGURACYJNE
STATUS ZAKOŃCZENIA
PLIKI
HISTORIA
ZOBACZ TAKŻE
ZGŁASZANIE BŁĘDÓW
DOSTĘPNOŚĆ

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