4
  • su user_name program запускает какую-то программу с другим uid;
  • chroot path program запускает некоторую программу с другим / ;
  • ( ulimit -v 80000; program) ограничивает память программы ...

Как ограничить возможности программы (7)?

Я вижу только инструмент setcap(8) , который устанавливает возможности файлов; Как сделать что-то вроде этого:

root# start_program_with_capabilities_dropped_except_of CAP_NET_RAW,CAP_NET_ADMIN program

Как запустить программу с моим набором возможностей без использования файловых возможностей?

Например, я root и хочу запустить ping:

  • Как некорневой
  • С флагом PR_SET_NO_NEW_PRIVS (так что все биты setuid и файловые возможности исчезают)
  • С активным только CAP_NET_RAW и всем остальным
  • Если ping знает, что он находится в непривилегированном режиме (ping: cannot flood; minimal interval, allowed for user, is 200ms)

2 ответа2

1

Программа capsh, кажется, предназначена для этого.

Кроме того, я реализовал это как режим в моей программе погружения .

Я до сих пор не знаю, как явно указать заглавные буквы, несмотря на возможности файловой системы.

1

Для этих целей существуют системные уровни и подуровни MAC (Mandatory Access Control). чтобы ограничить возможности, как их определила ваша ссылка, используйте учетную запись пользователя, которая обладает именно теми правами, которые вы хотите. в сочетании с SU и правами доступа к файлам приложение будет работать только для этого пользователя.

Для MAC распространенными примерами являются Selinux (NSA/Redhat) и AppArmor (Novell). Они ограничивают ресурсы, к которым приложение может получить доступ. помните, что в Linux все является файлом, поэтому, заблокировав необходимые файлы, вы можете ограничить возможности приложений. Системы MAC используют белый список, чтобы позволить приложениям получать доступ только к указанным ресурсам, и поэтому по умолчанию весь доступ запрещен. Я использую броню приложения для Firefox, например, которая ограничивает его областью приложения / кэша в моем $ HOME и такими вещами, как моя папка загрузок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .