SU(1)

NUME
su - execută o comandă cu ID-ul de utilizator și grup substituitor

REZUMAT

su [options] [-] [user [argument...]]

DESCRIERE

su allows commands to be run with a substitute user and group ID.

Atunci când este apelat fără a fi specificat utilizatorul, su rulează implicit un shell interactiv ca root. Atunci când este specificat utilizatorul, pot fi furnizate argumente suplimentare, caz în care acestea sunt pasate shell-ului.

Pentru compatibilitate cu versiunile anterioare, su nu modifică în mod implicit directorul curent și definește doar variabilele de mediu HOME și SHELL (plus USER și LOGNAME dacă utilizatorul țintă nu este root). Se recomandă să se utilizeze întotdeauna opțiunea --login (în loc de prescurtarea sa -) pentru a evita efectele secundare cauzate de amestecarea mediilor.

Această versiune de su utilizează PAM pentru autentificare, gestionarea conturilor și a sesiunilor. Unele opțiuni de configurare care se găsesc în alte implementări su, cum ar fi suportul pentru un grup wheel, trebuie să fie configurate prin PAM.

su is mostly designed for unprivileged users, the recommended solution for privileged users (e.g., scripts executed by root) is to use non-set-user-ID command runuser(1) that does not require authentication and provides separate PAM configuration. If the PAM session is not required at all then the recommended solution is to use command setpriv(1).

Rețineți că su folosește în toate cazurile PAM (pam_getenvlist(3)) pentru a efectua modificarea finală a mediului. Opțiunile din linia de comandă, cum ar fi --login și --preserve-environment, afectează mediul înainte ca acesta să fie modificat de PAM.

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

OPȚIUNI

-c, --command=comanda
    Pasează comanda către shell cu opțiunea -c.

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

-g, --group=grup
    Specifică grupul primar. Această opțiune este disponibilă 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.

    Rețineți că, pe sistemele bazate pe systemd, o sesiune nouă poate fi definită ca un punct de intrare real în sistem. Cu toate acestea, su nu creează o sesiune reală (prin PAM) din acest punct de vedere. Trebuie să utilizați instrumente precum systemd-run sau machinectl pentru a iniția o sesiune completă, reală.

    su does:

        • șterge toate variabilele de mediu, cu excepția TERM și a variabilelor specificate de --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. Această opțiune 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. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., su --pty - user -c application &). If the pseudo-terminal is enabled, then su 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" | su --pty), 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. 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.

    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

--session-command=comanda
    La fel ca -c, dar nu creează o sesiune nouă. (Neindicată.)

-T, --no-pty*
    Nu creează un pseudo-terminal, opusul lui --pty și -P. Rețineți că rularea fără un pseudo-terminal deschide riscul de securitate al escaladării privilegiilor prin injectarea comenzilor ioctl TIOCSTI/TIOCLINUX.

-w, --whitelist-environment=lista
    Nu se reinițializează variabilele de mediu specificate în lista separată prin virgulă 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ă informațiile despre versiune și iese.

SEMNALE

La primirea fie a semnalului SIGINT, SIGQUIT sau SIGTERM, su își termină procesul-copil și apoi se termină pe sine cu semnalul primit. Procesul-copilu se termină prin SIGTERM, iar după o încercare nereușită și-o întârziere de 2 secunde, procesul-copil este omorât prin SIGKILL.

FIȘIERE DE CONFIGURARE

su reads the /etc/default/su and /etc/login.defs configuration files. The following configuration items are relevant for su:

FAIL_DELAY (număr)
    Întârzierea în secunde în cazul unui eșec de autentificare. Numărul trebuie să fie un număr întreg nenegativ.

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, su 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

su normally returns the exit status of the command it executed. If the command was killed by a signal, su returns the number of the signal plus 128.

Stare de ieșire generată de su î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/su
    fișierul de configurare PAM implicit

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

/etc/default/su
    fișierul de configurare logindef specific comenzii

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

NOTE

Din motive de securitate, su înregistrează întotdeauna încercările eșuate de autentificare în fișierul btmp, dar nu scrie deloc în fișierul lastlog. Această soluție poate fi utilizată pentru a controla comportamentul su prin configurarea PAM. Dacă doriți să utilizați modulul pam_lastlog(8) pentru a afișa un mesaj de avertizare cu privire la încercările eșuate de autentificare, atunci pam_lastlog(8) trebuie să fie configurat pentru a actualiza și fișierul lastlog. De exemplu prin:

    session required pam_lastlog.so nowtmp

ISTORIC

Această comandă su a fost derivată din su de la coreutils, care a fost bazată pe o implementare realizată de David MacKenzie. Versiunea util-linux a fost remodelată de Karel Zak.

CONSULTAȚI ȘI

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

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor la

DISPONIBILITATE

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