Новое Распределяем каналы MAX по категориям и территориям. Читать новость

⌨️ Команда недели: setpriv



Привет! Иногда нужно запустить программу с ограниченными привилегиями и проверить, что она действительно не сможет сделать лишнего. Менять пользователя через sudo -u можно, но это ещё не вся история: у процесса есть capabilities, no_new_privs и другие параметры безопасности.

Для таких экспериментов в Linux есть setpriv. Она позволяет настроить привилегии прямо перед запуском команды.

👨‍💻 Например, запустим программу с запретом на получение новых привилегий:

setpriv —no-new-privs ./app

После этого процесс и его потомки не смогут получить дополнительные привилегии через execve(), в том числе за счёт setuid-бинарников и файловых capabilities.

⚡️ Можно пойти дальше и убрать все capabilities из bounding set:

sudo setpriv —bounding-set=-all \
—no-new-privs ./app


🔎 Ещё один вариант - проверить поведение программы с другим набором идентификаторов пользователя и групп:

sudo setpriv —reuid=1000 —regid=1000 \
—clear-groups ./app


Здесь важно явно указать, что делать с дополнительными группами. Иначе можно случайно оставить процессу доступ, который не планировали давать.

⚙️ Текущие настройки привилегий процесса можно посмотреть через:

grep -E ‘Cap(Inh|Prm|Eff|Bnd|Amb)|NoNewPrivs’ \
/proc/self/status


P.S. setpriv удобна для тестирования ограничений, но сама по себе не создаёт полноценную песочницу. Она не изолирует файловую систему, сеть и системные вызовы.

🤖Бесплатный ChatGPT
Просмотры: 52
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти