RUNUSER(1)

NUME
runuser - execută o comandă cu ID-ul înlocuitorului de utilizator și grup

REZUMAT

runuser [opțiuni] -u utilizator [[--] comanda [argument...]]

runuser [opțiuni] [-] [utilizator [argument...]]

DESCRIERE

runuser poate fi utilizat pentru a rula comenzi cu un ID de utilizator și de grup substituit. Dacă opțiunea -u nu este furnizată, runuser revine la semantica compatibilă cu su și se execută un shell. Diferența dintre comenzile runuser și su constă în faptul că runuser nu solicită o parolă (deoarece poate fi executat numai de către utilizatorul root) și utilizează o configurație PAM diferită. Comanda runuser nu trebuie să fie instalată cu permisiuni set-user-ID.

Dacă sesiunea PAM nu este necesară, atunci soluția recomandată este utilizarea comenzii setpriv(1).

Atunci când este apelat fără argumente, runuser rulează în mod implicit un shell interactiv ca root.

Pentru compatibilitate cu versiunile anterioare, runuser nu modifică în mod implicit directorul curent și stabilește doar variabilele de mediu HOME și SHELL (plus USER și LOGNAME dacă utilizatorul țintă nu este root). Această versiune a runuser utilizează PAM pentru gestionarea sesiunilor.

Note that runuser in all cases use PAM (pam_getenvlist(3)) to do the final environment modification. Command-line options such as --login and --preserve-environment affect the environment before it is modified by PAM.

Începând cu versiunea 2.38, runuser reinițiază limitele de resurse de proces RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS și RLIMIT_NOFILE.

OPȚIUNI

-c, --command=comanda
    Pass command to the shell with the -c option. Creates a new session via setsid(2). Refer to --session-command to keep the same session.

-f, --fast
    Pasează -f către shell, care poate fi sau nu util, în funcție de shell.

-g, --group=grup
    Grupul primar care urmează să fie utilizat. Această opțiune este permisă numai pentru utilizatorul root.

-G, --supp-group=grup
    Specifică un grup suplimentar. Această opțiune este disponibilă numai pentru utilizatorul root. Primul grup suplimentar specificat este, de asemenea, utilizat ca grup primar dacă nu este specificată opțiunea --group.

-, -l, --login
    Pornește shell-ul ca un shell de autentificare cu un mediu similar unei autentificări reale:

        • clears all the environment variables except for TERM, COLORTERM, NO_COLOR and variables specified by --whitelist-environment

        • inițializează variabilele de mediu HOME, SHELL, USER, LOGNAME și PATH

        • schimbă la directorul principal al utilizatorului țintă

        • stabilește argv[0] din shell la „-” pentru a face din shell un shell de autentificare

-m, -p, --preserve-environment
    Păstrează întregul mediu, adică nu stabilește HOME, SHELL, USER sau LOGNAME. Opțiunea este ignorată dacă este specificată opțiunea --login.

-P, --pty
    Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. Please note security advice about TIOCSTI vulnerability below.

    The entire session can also be moved to the background (e.g., runuser --pty -u user -- command &). If the pseudo-terminal is enabled, then runuser works as a proxy between the sessions (sync stdin and stdout).

    Această caracteristică este concepută în special pentru sesiunile interactive. În cazul în care intrarea standard nu este un terminal, ci, de exemplu, o conductă (de exemplu, echo "date" | runuser --pty -u utilizator), atunci fanionul ECHO pentru pseudo-terminal este dezactivat pentru a evita o ieșire dezordonată.

-s, --shell=shell
    Rulează shell-ul specificat în locul celui implicit. Shell-ul care urmează să fie executat este selectat în conformitate cu următoarele reguli, în ordine:

        • shell-ul specificat cu --shell

        • shell-ul specificat în variabila de mediu SHELL în cazul în care se utilizează opțiunea --preserve-environment

        • shell-ul listat în fișierul passwd al utilizatorului țintă

        • /bin/sh

        Dacă utilizatorul țintă are un shell restricționat (adică nu este listat în /etc/shells), atunci opțiunea --shell și variabilele de mediu SHELL sunt ignorate, cu excepția cazului în care utilizatorul apelant este root.

--session-command=comanda
    Same as -c, but do not create a new session. (Discouraged.) Please note security advice about TIOCSTI vulnerability below.

-T, --no-pty
    Do not create a pseudo-terminal, opposite of --pty and -P. Please note security advice about TIOCSTI vulnerability below.

-u, --user=utilizator
    Rulează comanda cu ID-ul de utilizator și ID-ul de grup efective ale numelui de utilizator utilizator.

-w, --whitelist-environment=lista
    Nu se reinițializează variabilele de mediu specificate în lista separată prin virgule atunci când se șterge mediul pentru --login. Lista albă este ignorată pentru variabilele de mediu HOME, SHELL, USER, LOGNAME și PATH.

-h, --help
    Afișează acest mesaj de ajutor și iese.

-V, --version
    Afișează versiunea și iese.

FIȘIERE DE CONFIGURARE

runuser citește fișierele de configurare /etc/default/runuser și /etc/login.defs. Următoarele elemente de configurare sunt relevante pentru runuser:

ENV_PATH (șir)
    Definește variabila de mediu PATH pentru un utilizator obișnuit. Valoarea implicită este /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (șir), ENV_SUPATH (șir)
    Definește variabila de mediu PATH pentru root. ENV_SUPATH are prioritate. Valoarea implicită este /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (boolean)
    Dacă este stabilită la yes și --login și --preserve-environment nu au fost specificate, runuser inițializează PATH.

Variabila de mediu PATH poate fi diferită pe sistemele în care /bin și /sbin sunt comasate în /usr; această variabilă este, de asemenea, afectată de opțiunea de linie de comandă --login și de setarea sistemului PAM (de exemplu, pam_env(8)).

STARE DE IEȘIRE

runuser returnează în mod normal starea de ieșire a comenzii pe care a executat-o. În cazul în care comanda a fost omorâtă de un semnal, runuser returnează numărul semnalului plus 128.

Stare de ieșire generată de runuser însuși:

1
    Eroare generică înainte de executarea comenzii solicitate

126
    Comanda solicitată nu a putut fi executată

127
    Comanda solicitată nu a fost găsită

FIȘIERE

/etc/pam.d/runuser
    fișierul de configurare PAM implicit

/etc/pam.d/runuser-l
    Fișierul de configurare PAM dacă este speciicată opțiunea --login

/etc/default/runuser
    fișierul de configurare logindef specific runuser

/etc/login.defs
    fișierul de configurare globală logindef

SECURITY NOTES

If runuser shares a terminal with the original session, it is potentially vulnerable to privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. There are two built-in ways to prevent this: Either you can use runuser with the -c option, which starts a new session via setsid(2) without a controlling terminal. Or, if your use case requires a controlling terminal, for example an interactive session, you can instruct runuser to use a pseudo terminal with the --pty or -P option.

ISTORIC

Această comandă runuser a fost derivată din su de la coreutils, care s-a bazat pe o implementare de către David MacKenzie, și din comanda runuser de la Fedora de către Dan Walsh.

CONSULTAȚI ȘI

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

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți

DISPONIBILITATE

Comanda runuser face parte din pachetul util-linux care poate fi descărcat de la