Provided by: util-linux-locales_2.39.1-4ubuntu2.2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
НАЗИВ
setpriv - покреће програм са различитим поставкама Линукс привилегија
УВОД
setpriv [опције] програм [аргументи]
ОПИС
Поставља или пропитује разне поставке Линукс привилегија које су наслеђене кроз execve(2). У поређењу са su(1) и runuser(1), setpriv не користи PAM, нити тражи лозинку. То је једноставан омотач непостављеног корисничког ИД-а око execve(2) и може се користити за одбацивање привилегија на исти начин као setuidgid(8) из daemontools, chpst(8) из runit, или сличних алата које испоручују други управници услуга.
ОПЦИЈЕ
--clear-groups Чисти додатне групе. -d, --dump Избацује текуће стање привилегије. Ова опција се може навести више од једном да покаже додатне, углавном корисне, информације. Несагласна са свим другим опцијама. --groups корисник... Поставља додатне групе. Аргумент је зарезом раздвојен списак ГИД-ова или назива. --inh-caps (+|-)могућн..., --ambient-caps (+|-)могућн..., --bounding-set (+|-)могућн... Поставља наследне могућности, амбијенталне могућности или гранични скуп могућности. Погледајте capabilities(7). Аргумент је зарезима раздвојен списак уноса +cap и -cap, који додају или уклањају унос. cap може бити или човеку читљив назив као што се види у capabilities(7) без префикса cap_ или у формату cap_N, где је N унутрашњи индекс могућности који користи Линукс. +all и -all се могу користити за додавање или уклањање свих могућности. Скуп могућности почиње као тренутни наследни скуп за --inh-caps, тренутни амбијентални скуп за --ambient-caps и тренутни гранични скуп за --bounding-set. Знајте да следећа ограничења (описан у capabilities(7)) која се односе на изменама ових могућности постављају: • Могућност се може додати наследном скупу само ако је тренутно присутна у граничном скупу. • Могућност се може додати амбијенталном скупу само ако је тренутно присутна и у дозвољеном и у наследном скупу. • Без обзира на синтаксу коју нуди setpriv, кернел не дозвољава додавање могућности у гранични скуп. Ако избаците могућност из граничног скупа, а да је не избаците и из наследног скупа, вероватно ћете постати збуњени. Не радите то. --keep-groups Очувава додатне групе. Корисно је само у конјункцији са --rgid, --egid, или --regid. --init-groups Започиње додатне групе користећи „initgroups3“. Корисна је само у конјункцији са --ruid или --reuid. --list-caps Исписује све познате могућности. Ова опција мора бити наведена сама. --no-new-privs Поставља бит no_new_privs. Са овим битом постављеним, execve(2) неће гарантовати нове привилегије. На пример, битови постави-ИД-корисника и постави-ИД-групе, као и могућности датотеке биће онемогућени. (Извршавање бинарних датотека са овим битовима постављеним ће и даље радити, али неће добити привилегије. Одређени LSM-ови, посебно AppArmor, могу довести до неуспеха у извршавању одређених програма.) Овај бит наслеђују подређени процеси и не може се поништити. Погледајте prctl(2) и Documentation/prctl/no_new_privs.txt у извору Линукс кернела. не_нове_привил бит је подржан још од Линукса 3.5. --rgid гид, --egid гид, --regid гид Поставља стварни, ефективни, или оба ГИД-а. Аргумент гид се може дати као текстуални назив групе. Због безбедности, морате навести --clear-groups, --groups, --keep-groups, или --init-groups ако поставите неки примарни гид. --ruid уид, --euid уид, --reuid уид Поставља стварни, ефективни, или оба УИД-а. Аргумент уид се може дати као текстуални назив пријаве. Постављање уид-а или гид-а не мења могућности, иако позив извршавања на крају може променити могућности. То значи да, ако сте администратор, вероватно желите да урадите нешто попут: setpriv --reuid=1000 --regid=1000 --inh-caps=-all --securebits (+|-)безбедносни-бит... Поставља или брише битове безбедности. Аргумент је зарезима раздвојен списак. Исправни битови безбедности су noroot, noroot_locked, no_setuid_fixup, no_setuid_fixup_locked, и keep_caps_locked. keep_caps је избрисан од стране execve-а(2) и стога није дозвољен. --pdeathsig keep|clear|<сигнал> Задржава, брише или поставља родитељски сигнал смрти. Неки LSM-ови, пре свега СЕЛинукс и AppArmor, бришу сигнал када се креденцијали процеса промене. Коришћење --pdeathsig keep ће повратити родитељски сигнал смрти након промене креденцијала да би се поправила та ситуација. --selinux-label натпис Потражује одређени СЕЛинукс прелаз (користећи прелаз на „exec“-у, а не „dyntrans“-у). Ово неће успети и проузроковаће прекида setpriv-а ако СЕЛинукс није у употреби, а прелаз може бити занемарен или може довести до тога да execve(2) не успе по хиру СЕЛинукса. (Нарочито, мало је вероватно да ће ово радити заједно са no_new_privs.) Ово је слично са runcon(1). --apparmor-profile профил Потражује одређени AppArmor профил (користећи прелаз на извршавању). Ово неће успети и довести до тога да setpriv прекине ако се AppArmor не користи, а прелаз може бити занемарен или довести до тога да execve(2) не успе по жељи AppArmor-а. --reset-env Брише све променљиве окружења осим ТЕРМ; покреће променљиве окружења ЛИЧНА, ШКОЉКА, КОРИСНИК, ИМЕ_ПРИЈАВЕ у складу са уносом лозинке корисника; поставља ПУТАЊУ на /usr/local/bin:/bin:/usr/bin за обичног корисника и на /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin за администратора. Променљива окружења ПУТАЊА може бити другачија на системима где су /bin и /sbin стопљени у /usr. Променљива окружења ШКОЉКА подразумева /bin/sh ако није дата ниједна у корисничком уносу лозинке. -h, --help Приказује текст помоћи и излази. -V, --version Исписује издање и излази.
БЕЛЕШКЕ
Ако примена неке наведене опције не успе, програм неће бити покренут и setpriv ће резултирати излазним стањем 127. Будите опрезни са овим алатом – може имати неочекиване безбедносне последице. На пример, постављање no_new_privs и затим извршавање програма који је ограничен на СЕЛинукс (као што би урадио овај алат) може спречити да СЕЛинукс ограничења ступе на снагу.
ПРИМЕРИ
Ако тражите понашање слично са su(1)/runuser(1), или sudo(8) (без опције -g), покушајте нешто као: setpriv --reuid=1000 --regid=1000 --init-groups Ако желите да опонашате setuid(8) позадинског алата, покушајте: setpriv --reuid=1000 --regid=1000 --clear-groups
АУТОРИ
Andy Lutomirski <luto@amacapital.net>
ПОГЛЕДАЈТЕ ТАКОЂЕ
runuser(1), su(1), prctl(2), capabilities(7)
ПРИЈАВЉИВАЊЕ ГРЕШАКА
За пријављивање грешака, користите пратиоца грешака на https://github.com/util-linux/util-linux/issues.
ДОСТУПНОСТ
Наредба setpriv је део пакета „util-linux“ који се може преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.