1

Я изучаю SELinux.

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

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

1 ответ1

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 .

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

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

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