'\" t .\" Title: setpriv .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: Корисничке наредбе .\" Source: util-linux 2.42.3 .\" Language: English .\" .TH "SETPRIV" "1" "2026-09-02" "util\-linux 2.42.3" "Корисничке наредбе" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "НАЗИВ" setpriv \- покреће програм са различитим поставкама Линукс привилегија .SH "УВОД" .sp \fBsetpriv\fP [опције] \fIпрограм\fP [\fIаргументи\fP] .SH "ОПИС" .sp Поставља или пропитује разне поставке Линукс привилегија које су наслеђене кроз \fBexecve\fP(2). .sp У поређењу са \fBsu\fP(1) и \fBrunuser\fP(1), \fBsetpriv\fP не користи PAM, нити тражи лозинку. То је једноставан омотач непостављеног корисничког ИД\-а око \fBexecve\fP(2) и може се користити за одбацивање привилегија на исти начин као \fBsetuidgid\fP(8) из \fBdaemontools\fP, \fBchpst\fP(8) из \fBrunit\fP, или сличних алата које испоручују други управници услуга. .SH "ОПЦИЈЕ" .sp \fB\-\-clear\-groups\fP .RS 4 Чисти додатне групе. .RE .sp \fB\-d\fP, \fB\-\-dump\fP .RS 4 Избацује текуће стање привилегије. Ова опција се може навести више од једном да покаже додатне, углавном корисне, информације. Несагласна са свим другим опцијама. .RE .sp \fB\-\-groups\fP \fIкорисник\fP.\|.\|. .RS 4 Поставља додатне групе. Аргумент је зарезом раздвојен списак ГИД\-ова или назива. .RE .sp \fB\-\-inh\-caps\fP (\fB+\fP|\fB\-\fP)\fIмогућн\fP.\|.\|., \fB\-\-ambient\-caps\fP (\fB+\fP|\fB\-\fP)\fIмогућн\fP.\|.\|., \fB\-\-bounding\-set\fP (\fB+\fP|\fB\-\fP)\fIмогућн\fP.\|.\|. .RS 4 Поставља наследне могућности, амбијенталне могућности или гранични скуп могућности. Погледајте \fBcapabilities\fP(7). Аргумент је зарезима раздвојен списак уноса \fB+\fP\fIcap\fP и \fB\-\fP\fIcap\fP, који додају или уклањају унос. \fIcap\fP може бити или човеку читљив назив као што се види у \fBcapabilities\fP(7) без префикса \fIcap_\fP или у формату \fBcap_N\fP, где је \fIN\fP унутрашњи индекс могућности који користи Линукс. \fB+all\fP и \fB\-all\fP се могу користити за додавање или уклањање свих могућности. .sp Скуп могућности почиње као тренутни наследни скуп за \fB\-\-inh\-caps\fP, тренутни амбијентални скуп за \fB\-\-ambient\-caps\fP и тренутни гранични скуп за \fB\-\-bounding\-set\fP. .sp Знајте да следећа ограничења (описан у \fBcapabilities\fP(7)) која се односе на изменама ових могућности постављају: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Могућност се може додати наследном скупу само ако је тренутно присутна у граничном скупу. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Могућност се може додати амбијенталном скупу само ако је тренутно присутна и у дозвољеном и у наследном скупу. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} Без обзира на синтаксу коју нуди \fBsetpriv\fP, кернел не дозвољава додавање могућности у гранични скуп. .RE .sp Ако избаците могућност из граничног скупа, а да је не избаците и из наследног скупа, вероватно ћете постати збуњени. Не радите то. .RE .sp \fB\-\-keep\-groups\fP .RS 4 Очувава додатне групе. Корисно је само у конјункцији са \fB\-\-rgid\fP, \fB\-\-egid\fP, или \fB\-\-regid\fP. .RE .sp \fB\-\-init\-groups\fP .RS 4 Започиње додатне групе користећи „initgroups3“. Корисна је само у конјункцији са \fB\-\-ruid\fP или \fB\-\-reuid\fP. .RE .sp \fB\-\-list\-caps\fP .RS 4 Исписује све познате могућности. Ова опција мора бити наведена сама. .RE .sp \fB\-\-nnp\fP, \fB\-\-no\-new\-privs\fP .RS 4 Поставља бит \fIno_new_privs\fP. Са овим битом постављеним, \fBexecve\fP(2) неће гарантовати нове привилегије. На пример, битови постави\-ИД\-корисника и постави\-ИД\-групе, као и могућности датотеке биће онемогућени. (Извршавање бинарних датотека са овим битовима постављеним ће и даље радити, али неће добити привилегије. Одређени LSM\-ови, посебно AppArmor, могу довести до неуспеха у извршавању одређених програма.) Овај бит наслеђују подређени процеси и не може се поништити. Погледајте \fBprctl\fP(2) и \fIDocumentation/prctl/no_new_privs.txt\fP у извору Линукс кернела. .sp \fIне_нове_привил\fP бит је подржан још од Линукса 3.5. .RE .sp \fB\-\-rgid\fP \fIгид\fP, \fB\-\-egid\fP \fIгид\fP, \fB\-\-regid\fP \fIгид\fP .RS 4 Поставља стварни, ефективни, или оба ГИД\-а. Аргумент \fIгид\fP се може дати као текстуални назив групе. .sp Због безбедности, морате навести \fB\-\-clear\-groups\fP, \fB\-\-groups\fP, \fB\-\-keep\-groups\fP, или \fB\-\-init\-groups\fP ако поставите неки примарни \fIгид\fP. .RE .sp \fB\-\-ruid\fP \fIуид\fP, \fB\-\-euid\fP \fIуид\fP, \fB\-\-reuid\fP \fIуид\fP .RS 4 Поставља стварни, ефективни, или оба УИД\-а. Аргумент \fIуид\fP се може дати као текстуални назив пријаве. .sp Постављање \fIуид\fP\-а или \fIгид\fP\-а не мења могућности, иако позив извршавања на крају може променити могућности. То значи да, ако сте администратор, вероватно желите да урадите нешто попут: .sp \fBsetpriv \-\-reuid=1000 \-\-regid=1000 \-\-inh\-caps=\-all\fP .RE .sp \fB\-\-securebits\fP (\fB+\fP|\fB\-\fP)\fIбезбедносни\-бит\fP.\|.\|. .RS 4 Поставља или брише битове безбедности. Аргумент је зарезима раздвојен списак. Исправни битови безбедности су \fInoroot\fP, \fInoroot_locked\fP, \fIno_setuid_fixup\fP, \fIno_setuid_fixup_locked\fP, и \fIkeep_caps_locked\fP. \fIkeep_caps\fP је избрисан од стране \fBexecve\fP\-а(2) и стога није дозвољен. .RE .sp \fB\-\-pdeathsig keep\fP|\fBclear\fP|\fB<сигнал>\fP .RS 4 Задржава, брише или поставља родитељски сигнал смрти. Неки LSM\-ови, пре свега СЕЛинукс и AppArmor, бришу сигнал када се креденцијали процеса промене. Коришћење \fB\-\-pdeathsig keep\fP ће повратити родитељски сигнал смрти након промене креденцијала да би се поправила та ситуација. .RE .sp \fB\-\-ptracer\fP \fIпид\fP|\fBany\fP|\fBnone\fP .RS 4 Када је ограничени „ptrace“ режим Yama\-е у дејству (тако је,, када је \fI/proc/sys/kernel/yama/ptrace_scope\fP постављено на 1), омогућава да буде праћен са \fBptrace\fP(2) процесом са наведеним ПИД\-ом, или било којим процесом, или без процеса. Видите \fBPR_SET_PTRACER\fP(2const). (Знајте да ово не наслеђује изрођени процес, стога је очувано кроз \fBexecve\fP(2).) Ова опција нема дејства када Yama није укључено или је у неком режиму другачијем од ограниченог „ptrace“\-а. .RE .sp \fB\-\-selinux\-label\fP \fIнатпис\fP .RS 4 Потражује одређени СЕЛинукс прелаз (користећи прелаз на „exec“\-у, а не „dyntrans“\-у). Ово неће успети и проузроковаће прекида \fBsetpriv\fP\-а ако СЕЛинукс није у употреби, а прелаз може бити занемарен или може довести до тога да \fBexecve\fP(2) не успе по хиру СЕЛинукса. (Нарочито, мало је вероватно да ће ово радити заједно са \fIno_new_privs\fP.) Ово је слично са \fBruncon\fP(1). .RE .sp \fB\-\-apparmor\-profile\fP \fIпрофил\fP .RS 4 Потражује одређени AppArmor профил (користећи прелаз на извршавању). Ово неће успети и довести до тога да \fBsetpriv\fP прекине ако се AppArmor не користи, а прелаз може бити занемарен или довести до тога да \fBexecve\fP(2) не успе по жељи AppArmor\-а. .RE .sp \fB\-\-landlock\-access\fP \fIприступ\fP .RS 4 Укључује „landlock“ ограничења за одређени скуп системских приступа. Да омогућите одређене подгрупе приступа користите \fB\-\-landlock\-rule\fP. .sp Блокира приступ свим системима датотека: .sp \fBsetpriv \-\-landlock\-access сд\fP .sp Блокира брисање свих датотека и стварање директоријума: .sp \fBsetpriv \-\-landlock\-access сд:remove\-file,make\-dir\fP .sp За потпун скуп подржаних категорија приступа користите \fBsetpriv \-\-help\fP. .sp The generic placeholder "fs" is subject to change and may be extended in future versions to support new access types. .RE .sp \fB\-\-landlock\-rule\fP \fIправило\fP .RS 4 Допушта један посебан приступ из категорија блокираних са \fB\-\-landlock\-access\fP. .sp Синтакса је као што следи: .sp \fB\-\-landlock\-rule $врста_правила:$приступ:$аргумент_правила\fP .sp На пример гарантује приступ читања датотеке свему под \fB/boot\fP: .sp \fB\-\-landlock\-rule путања\-под:датотека\-читања:/boot\fP .RE .sp \fB\-\-seccomp\-filter\fP \fIдатотека\fP .RS 4 Учитава сирови код „BPF seccomp“ филтера из датотеке. .sp Филтери се могу на пример направити са \fBenosys\fP. .RE .sp \fB\-\-reset\-env\fP .RS 4 .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} clears all the environment variables except \fBTERM\fP environment variable .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} initializes the environment variables \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP according to the user\(cqs passwd entry .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} the environment variable \fBSHELL\fP defaults to \fB/bin/sh\fP if none is given in the user\(cqs passwd entry. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} resets \fBPATH\fP environment variable according to setting in \fI/etc/login.defs\fP (\fBENV_PATH\fP, \fBENV_SUPATH\fP or \fBENV_ROOTPATH\fP variables), or defaults to \fI/usr/local/bin:/bin:/usr/bin\fP for a regular user and to \fI/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\fP for root. .sp The environment variable \fBPATH\fP may be different on systems where \fI/bin\fP and \fI/sbin\fP are merged into \fI/usr\fP. .RE .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Приказује текст помоћи и излази. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Исписује издање и излази. .RE .SH "БЕЛЕШКЕ" .sp Ако примена неке наведене опције не успе, \fIпрограм\fP неће бити покренут и \fBsetpriv\fP ће резултирати излазним стањем 127. .sp Будите опрезни са овим алатом – може имати неочекиване безбедносне последице. На пример, постављање \fIno_new_privs\fP и затим извршавање програма који је ограничен на СЕЛинукс (као што би урадио овај алат) може спречити да СЕЛинукс ограничења ступе на снагу. .SH "ПРИМЕРИ" .sp Note that \fBsetpriv\fP is not a 1:1 replacement for \fBsu\fP(1), \fBrunuser\fP(1), or \fBsudo\fP(8). Unlike those tools, \fBsetpriv\fP does not use PAM, does not prompt for a password, and does not perform session or accounting setup. The examples below provide a starting point for common privilege\-dropping scenarios. .sp If you want to switch UIDs/GIDs similarly to \fBrunuser\fP(1) (without \fB\-\-login\fP), try: .sp \fBsetpriv \-\-reuid=1000 \-\-regid=1000 \-\-inh\-caps=\-all \-\-init\-groups\fP .sp To also reset the environment (as \fBsudo\fP(8) does by default), add \fB\-\-reset\-env\fP: .sp \fBsetpriv \-\-reuid=1000 \-\-regid=1000 \-\-inh\-caps=\-all \-\-init\-groups \-\-reset\-env\fP .sp For a more restrictive setup that also limits the bounding set and prevents gaining new privileges (more restrictive than \fBrunuser\fP or \fBsudo\fP): .sp \fBsetpriv \-\-reuid=1000 \-\-regid=1000 \-\-init\-groups \-\-inh\-caps=\-all \-\-bounding\-set=\-all \-\-no\-new\-privs \-\-reset\-env\fP .sp Ако желите да опонашате \fBsetuid\fP(8) позадинског алата, покушајте: .sp \fBsetpriv \-\-reuid=1000 \-\-regid=1000 \-\-clear\-groups\fP .SH "АУТОРИ" .sp .MTO "luto\(atamacapital.net" "Andy Lutomirski" "" .SH "ПОГЛЕДАЈТЕ ТАКОЂЕ" .sp \fBrunuser\fP(1), \fBsu\fP(1), \fBprctl\fP(2), \fBcapabilities\fP(7), \fBlandlock\fP(7) .SH "ПРИЈАВЉИВАЊЕ ГРЕШАКА" .sp За пријављивање грешака, користите „https://github.com/util\-linux/util\-linux/issues[issue tracker]“. .SH "ДОСТУПНОСТ" .sp Наредба \fBsetpriv\fP је део „util\-linux“ пакета који се може преузети са \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Архиве Линукс кернела" "."