Provided by: util-linux-locales_2.41.2-4ubuntu1_all 

NUME
setpriv - rulează un program cu diferite configurări de privilegii Linux
REZUMAT
setpriv [opțiuni] program [argumente]
DESCRIERE
Stabilește sau interoghează diverse configurări de privilegii Linux care sunt moștenite de execve(2).
În comparație cu su(1) și runuser(1), setpriv nu utilizează PAM și nici nu solicită o parolă. Este un
simplu învăluitor care nu stabilește ID-ul de utilizator în jurul lui execve(2) și poate fi utilizat
pentru a scădea privilegiile în același mod ca setuidgid(8) din daemontools, chpst(8) din runit sau
instrumente similare furnizate de alți administratori de servicii.
OPȚIUNI
--clear-groups
Șterge grupurile suplimentare.
-d, --dump
Afișează starea actuală a privilegiilor. Această opțiune poate fi specificată de mai multe ori pentru
a afișa informații suplimentare, de cele mai multe ori inutile. Incompatibilă cu toate celelalte
opțiuni.
--groups grup...
Stabilește grupurile suplimentare. Argumentul este o listă de GID-uri sau nume separate prin virgule.
--inh-caps (+|-)capacități..., --ambient-caps (+|-)capacități..., --bounding-set (+|-)capacități...
Stabilește capacitățile moștenite, capacitățile ambientale sau setul de limitare a capacităților. A
se vedea capabilities(7). Argumentul este o listă de intrări +capacități și -capacități, separate
prin virgule, care adaugă sau, respectiv, elimină o intrare. capacități poate fi fie un nume
interpretabil de către om, așa cum se vede în capabilities(7), fără prefixul capacități, fie în
formatul cap_N, unde N este indexul intern al capacităților utilizat de Linux. +all și -all pot fi
utilizate pentru a adăuga sau a elimina toate capacitățile.
Setul de capacități începe cu setul moștenit curent pentru --inh-caps, setul ambiental curent pentru
--ambient-caps și setul de limitare curent pentru --bounding-set.
Rețineți următoarele restricții [detaliate în capabilities(7)] privind modificările aduse acestor
seturi de capacități:
• O capacitate poate fi adăugată la setul moștenit numai dacă este prezentă în prezent în setul
limitator.
• O capacitate poate fi adăugată la setul „ambient” numai dacă este prezentă atât în setul permis,
cât și în setul moștenit.
• În pofida sintaxei oferite de setpriv, nucleul nu permite adăugarea de capacități la setul
limitator.
Dacă renunțați la o capacitate din setul delimitator fără a o elimina, de asemenea, din setul moștenit,
este posibil să vă confundați. Nu faceți acest lucru.
--keep-groups
Păstrează grupurile suplimentare. Utilă numai în combinație cu --rgid, --egid sau --regid.
--init-groups
Inițializează grupurile suplimentare folosind initgroups3. Utilă numai în combinație cu --ruid sau
--reuid.
--list-caps
Listează toate capacitățile cunoscute. Această opțiune trebuie să fie specificată singură.
--no-new-privs
Activează bitul no_new_privs. Cu acest bit activat, execve(2) nu va acorda noi privilegii. De
exemplu, vor fi dezactivați biții set-user-ID și set-group-ID, precum și capacitățile de fișier
(executarea binarelor cu acești biți activați va funcționa în continuare, dar nu vor obține
privilegii; anumite LSM-uri, în special AppArmor, pot duce la eșecuri în executarea anumitor
programe). Acest bit este moștenit de procesele-copil și nu poate fi dezactivat. A se vedea prctl(2)
și Documentation/prctl/no_new_privs.txt în sursa nucleului Linux.
Bitul no_new_privs este acceptat începând cu Linux 3.5.
--rgid gid, --egid gid, --regid gid
Stabilește GID-ul real, efectiv sau ambele GID-uri. Argumentul gid poate fi dat ca un nume de grup
textual.
Pentru siguranță, trebuie să specificați una dintre următoarele opțiuni: --clear-groups, --groups,
--keep-groups sau --init-groups dacă stabiliți vreun gid primar.
--ruid uid, --euid uid, --reuid uid
Stabilește UID-ul real, efectiv sau ambele. Argumentul uid poate fi dat sub forma unui nume de
autentificare textual.
Stabilirea unui uid sau gid nu modifică capacitățile, deși apelul exec de la sfârșit ar putea
modifica capacitățile. Acest lucru înseamnă că, dacă sunteți root, probabil doriți să faceți ceva de
genul:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all
--securebits (+|-)bit-securitate...
Activează sau dezactivează biții-de-securitate. Argumentul este o listă separată prin virgule.
Biții-de-securitate valizi sunt noroot, noroot_locked, no_setuid_fixup, no_setuid_fixup_locked și
keep_caps_locked. keep_caps este eliminat de execve(2) și, prin urmare, nu este permis.
--pdeathsig keep|clear|<semnal>
Păstrează, șterge sau activează semnalul de moarte al părintelui. Unele LSM-uri, în special SELinux
și AppArmor, șterg semnalul atunci când se schimbă acreditările procesului. Folosind --pdeathsig keep
se va restabili semnalul de moarte al părintelui după schimbarea acreditărilor pentru a remedia
această situație.
--ptracer pid|any|none
Atunci când modul restricționat ptrace „restricted ptrace” al Yama este în vigoare (adică atunci când
/proc/sys/kernel/yama/ptrace_scope este definit la 1), permite urmărirea prin ptrace(2) de către
procesul cu PID specificat, de către orice proces sau de către niciun proces. A se vedea
PR_SET_PTRACER(2const). Rețineți că această opțiune nu este moștenită de procesele copil, deși este
păstrată prin execve(2). Această opțiune nu are niciun efect atunci când Yama nu este activat sau
este într-un alt mod decât „restricted ptrace”.
--selinux-label eticheta
Solicită o anumită tranziție SELinux (folosind o tranziție pe exec, nu dyntrans). Acest lucru va eșua
și va face ca setpriv să eșueze dacă SELinux nu este utilizat, iar tranziția poate fi ignorată sau
poate face ca execve(2) să eșueze, după bunul plac al lui SELinux (în special, este puțin probabil ca
acest lucru să funcționeze împreună cu no_new_privs). Acest lucru este similar cu runcon(1).
--apparmor-profile profil
Solicită un anumit profil AppArmor (utilizând o tranziție pe execuție). Acest lucru va eșua și va
face ca setpriv să fie anulat dacă AppArmor nu este utilizat, iar tranziția poate fi ignorată sau
poate face ca execve(2) să eșueze, în funcție de capriciul lui AppArmor.
--landlock-access acces
Activează restricțiile landlock pentru un set specific de accesări ale sistemului. Pentru a permite
subgrupuri specifice de accese, utilizați --landlock-rule.
Blochează orice acces la sistemul de fișiere:
setpriv --landlock-access sistem-fișiere
Blochează toate ștergerile de fișiere și crearea de directoare:
setpriv --landlock-access sistem-fișier:fișier-de eliminat,make-dir
Pentru un set complet de categorii de acces acceptate, utilizați setpriv --help.
--landlock-rule regulă
Permite un anumit acces din categoriile blocate de --landlock-access.
Sintaxa este următoarea:
--landlock-rule $ruletype:$access:$rulearg
De exemplu, acordați acces de citire a fișierelor la tot ce se află sub /boot:
--landlock-rule path-beneath:read-file:/boot
--seccomp-filter fișier
Încarcă codul filtrului BPF seccomp brut dintr-un fișier.
Filtrele pot fi create, de exemplu, cu enosys.
--reset-env
Șterge toate variabilele de mediu, cu excepția TERM; inițializează variabilele de mediu HOME, SHELL,
USER, LOGNAME în funcție de parola utilizatorului; definește PATH la /usr/local/bin:/bin:/usr/bin
pentru un utilizator obișnuit și la /usr/local/sbin:/usr/local/bin:/sbin:/bin:/bin:/usr/sbin:/usr/bin
pentru root.
Variabila de mediu PATH poate fi diferită pe sistemele în care /bin și /sbin sunt comasate în /usr.
Variabila de mediu SHELL are ca valoare implicită /bin/sh în cazul în care nu este specificată în
parola de acces a utilizatorului.
-h, --help
Afișează acest mesaj de ajutor și iese.
-V, --version
Afișează versiunea și iese.
NOTE
În cazul în care aplicarea oricărei opțiuni specificate eșuează, program nu va fi executat, iar setpriv
va termina cu starea de ieșire 127.
Aveți grijă cu acest instrument - poate avea consecințe neașteptate asupra securității. De exemplu, dacă
definiți no_new_privs și apoi executați un program care este limitat de SELinux (așa cum ar face acest
instrument), este posibil ca restricțiile SELinux să nu își facă efectul.
EXEMPLE
Dacă sunteți în căutarea unui comportament similar cu su(1)/runuser(1), sau sudo(8) (fără opțiunea -g),
încercați ceva de genul:
setpriv --reuid=1000 --regid=1000 --init-groups
Dacă doriți să imitați setuid(8) de la daemontools, încercați:
setpriv --reuid=1000 --regid=1000 --clear-groups
AUTORI
Andy Lutomirski <luto@amacapital.net>
CONSULTAȚI ȘI
runuser(1), su(1), prctl(2), capabilities(7) landlock(7)
RAPORTAREA ERORILOR
Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor
<https://github.com/util-linux/util-linux/issues>.
DISPONIBILITATE
Comanda setpriv face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41.2 2025-10-17 SETPRIV(1)