Разрешить операции для демона с пользовательским контекстом в разных файлах с различным контекстом в SELinux - PullRequest
0 голосов
/ 28 июня 2018

Специальный тип разрешающего правила

Я создал работающий демон из исполняемого файла с пользовательским контекстом, что-то вроде:

system_u:system_r:daemon_name_t

Он будет рекурсивно проходить по всему каталогу и считывать (не открывать) эти неизвестные файлы (эти файлы могут иметь любой контекст, не только из его домена), поэтому я хотел бы написать правило принудительного использования типов с использованием scontext daemon_name_t и ЛЮБОЙ целевой контекст. При написании правила принудительного применения типов я бы хотел, чтобы оно оставалось как можно более ограничительным. Я не хочу давать этому контекст unconfined_t.

Например, если мне нужно разрешить операции getattr и read, я бы хотел получить этот эффект:

allow daemon_name_t { * } :file { getattr read };

Я не могу найти какой-либо возможный способ сделать это с SELinux. Это вообще возможно? Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: я обнаружил, что существует способ применения правила разрешения для file_type, например:

allow daemon_name_t file_type:{type1 type2} {getattr read};

Пока мне достаточно, но было бы хорошо узнать, есть ли лучшее решение.

1 Ответ

0 голосов
/ 12 сентября 2018

Политика SELinux содержит интерфейсы, которые упрощают написание таких правил. Доступные интерфейсы перечислены в документации API политики (документация должна предоставляться пакетом selinux-policy-doc в вашем дистрибутиве). Например, подходящими интерфейсами могут быть files_list_non_auth_dirs и files_read_non_auth_files:

files_list_non_auth_dirs(daemon_name_t)
files_read_non_auth_files(daemon_name_t)
...