НАЗВА
setpriv — запуск програми із іншими параметрами прав доступу у LinuxКОРОТКИЙ ОПИС
setpriv [параметри] програма [ аргументи]ОПИС
Встановлює або опитує різноманітні параметри прав доступу у Linux, які успадковуються у межах execve(2).ПАРАМЕТРИ
--clear-groupsСпорожнити
список
допоміжних
груп.
Створити
дамп
поточного
стану
привілеїв.
Цей
параметр
можна
вказати
декілька
разів, щоб
переглянути
додаткові,
здебільшого
не варті
уваги, дані.
Несумісний
із іншими
параметрами.
Встановити
додаткові
групи.
Аргумент є
списком
відокремлених
комами
записів GID
або імен.
Встановити
успадковувані
можливості,
зовнішні
можливості
або
обмежувальний
набір
можливостей.
Див.
сторінку
підручника
capabilities(7).
Аргументом
є список
відокремлених
комами
записів
+можливість
та
-можливість,
які
додають
або
вилучають
запис,
відповідно.
Записом
можливість
може бути
або зручна
для
читання
назва, яку
наведено
на
сторінці
підручника
capabilities(7) без
префікса cap_,
або запис у
форматі cap_N,
де N є
внутрішнім
індексом
можливості,
який
використовують
у Linux.
Записами +all
і -all може
бути
використано
для
додавання
або
вилучення
усіх
можливостей.
Набір
можливостей
починається
як
поточний
успадкований
набір для
--inh-caps,
поточний
зовнішній
набір для
--ambient-caps і
поточний
обмежувальний
набір для
--bounding-set.
Зверніть
увагу на
такі
обмеження
(докладніше
про них у
capabilities(7)) щодо
внесення
змін до цих
наборів
можливостей:
•Можливості
може бути
додано до
успадкованого
набору,
лише якщо
вони є в
обмежувальному
наборі.
•Можливості
може бути
додано до
зовнішнього
набору,
лише якщо
вони є
одразу у
дозволеному
та
успадкованому
наборі.
•Незважаючи
на
синтаксичну
можливість,
яку
пропонує
setpriv, ядро не
дозволяє
додавання
можливостей
до
обмежувального
набору.
Зберігати
додаткові
групи.
Корисно
лише у
поєднанні
із --rgid, --egid або
--regid.
Ініціалізувати
групи за
допомогою
initgroups3. Корисно
лише у
поєднанні
із --ruid або --reuid.
Вивести
список
усіх
відомих
можливостей.
Цей
параметр
має бути
єдиним
параметром
команди.
Встановити
біт no_new_privs. Із
встановленим
цим бітом
execve(2) не
надаватиме
нових прав
доступу.
Наприклад,
біти set-user-ID і set-group-ID, а
також
можливості
доступу до
файлів
буде
вимкнено.
(Запуск
виконуваних
файлів із
встановленими
цими
бітами
продовжуватимуть
працювати,
але вони не
набуватимуть
прав
доступу.
Використання
певних
модулів
захисту Linux,
особливо AppArmor,
може
призвести
до помилок
під час
виконання
певних
програм.)
Цей біт
успадковується
дочірніми
процесами,
його не
можна
зняти. Див.
сторінку
підручника
щодо prctl(2) і
Documentation/prctl/no_new_privs.txt у
початковому
коді ядра Linux.
Підтримку
біта no_new_privs
передбачено
з часу Linux 3.5.
Встановити
справжній,
ефективний
або обидва GID.
Аргумент gid
може бути
задано у
форматі
текстової
назви
групи.
Для
забезпечення
безпеки
вам слід
вказати
один із
параметрів
--clear-groups, --groups, --keep-groups
або --init-groups,
якщо ви
встановили
якийсь
основний
gid.
Встановити
справжній,
ефективний
або обидва UID.
Аргумент uid
може бути
задано у
форматі
текстового
імені
користувача.
Встановлення
uid або gid не
змінює
можливостей,
хоча
виклик exec
наприкінці
може
змінити
можливості.
Це означає,
що, якщо у
вас є права
доступу root,
вам,
можливо,
варто
віддати
якісь такі
команди:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all
Встановити
або зняти
біти
захисту.
Аргументом
є список
відокремлених
комами
значень.
Коректними
бітами
захисту є
noroot, noroot_locked, no_setuid_fixup,
no_setuid_fixup_locked_ і _keep_caps_locked. keep_caps
знімається
execve(2), тому є
забороненим.
Зберегти,
зняти або
встановити
батьківський
сигнал
смерті.
Деякі
модулі
захисту Linux,
найпоширенішими
з яких є SELinux і AppArmor,
знімають
сигнал при
зміні
реєстраційних
даних
процесу.
Використання
--pdeathsig keep
відновить
батьківський
сигнал
смерті
після
зміни
реєстраційних
даних для
залагодження
цього
конфлікту.
Надіслати
запит щодо
певного
переходу SELinux
(з
використанням
переходу
при exec, без
динамічних
переходів).
Перехід не
вдасться і
спричинить
переривання
роботи setpriv,
якщо не
використовується
SELinux, і перехід
може бути
проігноровано
або він
може
призвести
до помилки
execve(2) під
керуванням
SELinux. (Зокрема,
це навряд
чи
працюватиме
у
поєднанні
із no_new_privs.) Це
подібне до
runcon(1).
Надіслати
запит щодо
певного
профілю AppArmor (з
використанням
переходу
при exec).
Перехід
зазнає
невдачі і
спричинить
переривання
роботи setpriv,
якщо не
використовується
AppArmor, а перехід
може бути
проігноровано
або він
може
спричинити
помилку execve(2)
під
керуванням
AppArmor.
Скасовує
визначення
усіх
змінних
середовища,
окрім TERM;
ініціалізує
змінні
середовища
HOME, SHELL, USER, LOGNAME
відповідно
до запису passwd
користувача;
встановлює
для PATH
значення
/usr/local/bin:/bin:/usr/bin для
звичайного
користувача
і /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
для
користувача
root.
Значення
змінної
середовища
PATH може бути
іншим у
системах,
де /bin і /sbin
об'єднано у
/usr. Типовим
значенням
змінної
середовища
SHELL є /bin/sh, якщо
інше
значення
не задано у
записі passwd
користувача.
Вивести
текст
довідки і
завершити
роботу.
Вивести
дані щодо
версії і
завершити
роботу.
ПРИМІТКИ
Якщо застосування будь-якого вказаного параметра зазнає невдачі, програму не буде запущено, а setpriv поверне керування зі станом виходу 127.ПРИКЛАДИ
Якщо вам потрібна поведінка, подібна до su(1)/ runuser(1) або sudo(8) (без параметра -g), спробуйте щось таке:АВТОРИ
Andy <[email protected]>LutomirskiДИВ. ТАКОЖ
runuser(1), su(1), prctl(2), capabilities(7)ЗВІТИ ПРО ВАДИ
Для звітування про вади використовуйте систему стеження помилками на <https://github.com/util-linux/util-linux/issues>.ДОСТУПНІСТЬ
setpriv є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <[email protected]> Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ. Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: [email protected]11 травня 2022 року | util-linux 2.38.1 |