SETPRIV(1) Comenzi utilizator SETPRIV(1) NUME setpriv - ruleaza un program cu diferite configurari de privilegii Linux REZUMAT setpriv [opiuni] program [argumente] DESCRIERE Stabilete sau interogheaza diverse configurari de privilegii Linux care sunt motenite de execve(2). In comparaie cu su(1) i runuser(1), setpriv nu utilizeaza PAM i nici nu solicita o parola. Este un simplu invaluitor care nu stabilete ID-ul de utilizator in jurul lui execve(2) i poate fi utilizat pentru a scadea privilegiile in acelai mod ca setuidgid(8) din daemontools, chpst(8) din runit sau instrumente similare furnizate de ali administratori de servicii. OPIUNI --clear-groups terge grupurile suplimentare. -d, --dump Afieaza starea actuala a privilegiilor. Aceasta opiune poate fi specificata de mai multe ori pentru a afia informaii suplimentare, de cele mai multe ori inutile. Incompatibila cu toate celelalte opiuni. --groups grup... Stabilete grupurile suplimentare. Argumentul este o lista de GID-uri sau nume separate prin virgule. --inh-caps (+|-)capacitai..., --ambient-caps (+|-)capacitai..., --bounding-set (+|-)capacitai... Stabilete capacitaile motenite, capacitaile ambientale sau setul de limitare a capacitailor. A se vedea capabilities(7). Argumentul este o lista de intrari +capacitai i -capacitai, separate prin virgule, care adauga sau, respectiv, elimina o intrare. capacitai poate fi fie un nume interpretabil de catre om, aa cum se vede in capabilities(7), fara prefixul capacitai, fie in formatul cap_N, unde N este indexul intern al capacitailor utilizat de Linux. +all i -all pot fi utilizate pentru a adauga sau a elimina toate capacitaile. Setul de capacitai incepe cu setul motenit curent pentru --inh-caps, setul ambiental curent pentru --ambient-caps i setul de limitare curent pentru --bounding-set. Reinei urmatoarele restricii [detaliate in capabilities(7)] privind modificarile aduse acestor seturi de capacitai: o O capacitate poate fi adaugata la setul motenit numai daca este prezenta in prezent in setul limitator. o O capacitate poate fi adaugata la setul ,,ambient" numai daca este prezenta atat in setul permis, cat i in setul motenit. o In pofida sintaxei oferite de setpriv, nucleul nu permite adaugarea de capacitai la setul limitator. Daca renunai la o capacitate din setul delimitator fara a o elimina, de asemenea, din setul motenit, este posibil sa va confundai. Nu facei acest lucru. --keep-groups Pastreaza grupurile suplimentare. Utila numai in combinaie cu --rgid, --egid sau --regid. --init-groups Iniializeaza grupurile suplimentare folosind initgroups3. Utila numai in combinaie cu --ruid sau --reuid. --list-caps Listeaza toate capacitaile cunoscute. Aceasta opiune trebuie sa fie specificata singura. --no-new-privs Activeaza bitul no_new_privs. Cu acest bit activat, execve(2) nu va acorda noi privilegii. De exemplu, vor fi dezactivai biii set-user-ID i set-group-ID, precum i capacitaile de fiier (executarea binarelor cu aceti bii activai va funciona in continuare, dar nu vor obine privilegii; anumite LSM-uri, in special AppArmor, pot duce la eecuri in executarea anumitor programe). Acest bit este motenit de procesele-copil i nu poate fi dezactivat. A se vedea prctl(2) i Documentation/prctl/no_new_privs.txt in sursa nucleului Linux. Bitul no_new_privs este acceptat incepand cu Linux 3.5. --rgid gid, --egid gid, --regid gid Stabilete GID-ul real, efectiv sau ambele GID-uri. Argumentul gid poate fi dat ca un nume de grup textual. Pentru sigurana, trebuie sa specificai una dintre urmatoarele opiuni: --clear-groups, --groups, --keep-groups sau --init-groups daca stabilii vreun gid primar. --ruid uid, --euid uid, --reuid uid Stabilete UID-ul real, efectiv sau ambele. Argumentul uid poate fi dat sub forma unui nume de autentificare textual. Stabilirea unui uid sau gid nu modifica capacitaile, dei apelul exec de la sfarit ar putea modifica capacitaile. Acest lucru inseamna ca, daca suntei root, probabil dorii sa facei ceva de genul: setpriv --reuid=1000 --regid=1000 --inh-caps=-all --securebits (+|-)bit-securitate... Activeaza sau dezactiveaza biii-de-securitate. Argumentul este o lista separata prin virgule. Biii-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| Pastreaza, terge sau activeaza semnalul de moarte al parintelui. Unele LSM-uri, in special SELinux i AppArmor, terg semnalul atunci cand se schimba acreditarile procesului. Folosind --pdeathsig keep se va restabili semnalul de moarte al parintelui dupa schimbarea acreditarilor pentru a remedia aceasta situaie. --ptracer pid|any|none Atunci cand modul restricionat ptrace ,,restricted ptrace" al Yama este in vigoare (adica atunci cand /proc/sys/kernel/yama/ptrace_scope este definit la 1), permite urmarirea prin ptrace(2) de catre procesul cu PID specificat, de catre orice proces sau de catre niciun proces. A se vedea PR_SET_PTRACER(2const). Reinei ca aceasta opiune nu este motenita de procesele copil, dei este pastrata prin execve(2). Aceasta opiune nu are niciun efect atunci cand Yama nu este activat sau este intr-un alt mod decat ,,restricted ptrace". --selinux-label eticheta Solicita o anumita tranziie SELinux (folosind o tranziie pe exec, nu dyntrans). Acest lucru va eua i va face ca setpriv sa eueze daca SELinux nu este utilizat, iar tranziia poate fi ignorata sau poate face ca execve(2) sa eueze, dupa bunul plac al lui SELinux (in special, este puin probabil ca acest lucru sa funcioneze impreuna cu no_new_privs). Acest lucru este similar cu runcon(1). --apparmor-profile profil Solicita un anumit profil AppArmor (utilizand o tranziie pe execuie). Acest lucru va eua i va face ca setpriv sa fie anulat daca AppArmor nu este utilizat, iar tranziia poate fi ignorata sau poate face ca execve(2) sa eueze, in funcie de capriciul lui AppArmor. --landlock-access acces Activeaza restriciile landlock pentru un set specific de accesari ale sistemului. Pentru a permite subgrupuri specifice de accese, utilizai --landlock-rule. Blocheaza orice acces la sistemul de fiiere: setpriv --landlock-access sistem-fiiere Blocheaza toate tergerile de fiiere i crearea de directoare: setpriv --landlock-access sistem-fiier:fiier-de eliminat,make-dir Pentru un set complet de categorii de acces acceptate, utilizai setpriv --help. --landlock-rule regula Permite un anumit acces din categoriile blocate de --landlock-access. Sintaxa este urmatoarea: --landlock-rule $ruletype:$access:$rulearg De exemplu, acordai acces de citire a fiierelor la tot ce se afla sub /boot: --landlock-rule path-beneath:read-file:/boot --seccomp-filter fiier Incarca codul filtrului BPF seccomp brut dintr-un fiier. Filtrele pot fi create, de exemplu, cu enosys. --reset-env terge toate variabilele de mediu, cu excepia TERM; iniializeaza variabilele de mediu HOME, SHELL, USER, LOGNAME in funcie de parola utilizatorului; definete PATH la /usr/local/bin:/bin:/usr/bin pentru un utilizator obinuit i la /usr/local/sbin:/usr/local/bin:/sbin:/bin:/bin:/usr/sbin:/usr/bin pentru root. Variabila de mediu PATH poate fi diferita pe sistemele in care /bin i /sbin sunt comasate in /usr. Variabila de mediu SHELL are ca valoare implicita /bin/sh in cazul in care nu este specificata in parola de acces a utilizatorului. -h, --help Afieaza acest mesaj de ajutor i iese. -V, --version Afieaza versiunea i iese. NOTE In cazul in care aplicarea oricarei opiuni specificate eueaza, program nu va fi executat, iar setpriv va termina cu starea de ieire 127. Avei grija cu acest instrument - poate avea consecine neateptate asupra securitaii. De exemplu, daca definii no_new_privs i apoi executai un program care este limitat de SELinux (aa cum ar face acest instrument), este posibil ca restriciile SELinux sa nu ii faca efectul. EXEMPLE Daca suntei in cautarea unui comportament similar cu su(1)/runuser(1), sau sudo(8) (fara opiunea -g), incercai ceva de genul: setpriv --reuid=1000 --regid=1000 --init-groups Daca dorii sa imitai setuid(8) de la daemontools, incercai: setpriv --reuid=1000 --regid=1000 --clear-groups AUTORI Andy Lutomirski CONSULTAI I runuser(1), su(1), prctl(2), capabilities(7) landlock(7) RAPORTAREA ERORILOR Pentru rapoarte de eroare, folosii sistemul de urmarire al erorilor . DISPONIBILITATE Comanda setpriv face parte din pachetul util-linux care poate fi descarcat de la Linux Kernel Archive . util-linux 2.41 2025-03-29 SETPRIV(1)