SELinux доступ только к открытым файлам


1

Я изучаю SELinux.

С помощью SELinux можно ли разрешить двоичному файлу доступ к файлам, открытым его родительским процессом, и никаких других файлов?

Если это невозможно, тогда мы должны усилить это.

Ответы:


2

Да, это можно сделать.

SELinux - это система маркировки, и доступ для выполнения различных операций над файлами (но также и над пользователями, процессами, ...) предоставляется на основе контекста безопасности инициирующего процесса.

Опорная политика определяет контекст безопасности процесса:

# ps -defZ | grep httpd
system_u:system_r:httpd_t:s0    root      1085     1  0 21:22 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

В этом примере контекст безопасности имеет следующие элементы:

  • system_u: пользователь SELinux
  • system_r: роль SELinux
  • httpd_t: атрибут принудительного применения типа SELinux
  • s0: диапазон MLS / MCS, релевантный в политиках, отличных от целевых по умолчанию.

А также определяет, к каким контекстам безопасности процесс может иметь доступ:

# ll -dZ /srv/www/html/
drwxr-s---. root apache system_u:object_r:httpd_sys_content_t:s0 /srv/www/html/

# sesearch -s httpd_t -t httpd_sys_content_t -c file -p read -Ad
Found 1 semantic av rules:
   allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open } ;

В приведенном выше примере, учитывая контекст безопасности каталога /srv/www/htmlВы можете найти с помощью sesearch(1) если это определено в политике, что процесс помечен httpd_t может иметь доступ на чтение к каталогу с меткой httpd_sys_content_t,

Проверьте страницу руководства sesearch для большего количества вариантов.

Таким образом, чтобы разветвленный процесс был ограничен доступом к файлам, открытым его родителем, вы должны убедиться, что существует политика, разрешающая эту операцию.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.