Проверка целостности SElinux - PullRequest
1 голос
/ 26 марта 2010

Как я могу проверить (с помощью SELinux) доступ к файлу по имени процесса?

Например, у нас есть 2 процесса:

  • /usr/bin/foo1
  • /usr/bin/foo2

Они запускаются под учетной записью с именем пользователя userA и пытаются открыть для изменения файл:

  • /home/userA/test.txt

Я хочу, чтобы, если foo1 попытается открыть файл - это нормально. Но если foo2 пытается открыть этот файл - у меня есть сообщение об этом в /var/log.

Проблема в том, что оба процесса имеют одинаковый идентификатор пользователя. И я не могу использовать RBAC по имени пользователя.

1 Ответ

2 голосов
/ 13 февраля 2011

Вы должны указать оба типа доменов: foo1 и foo2 для работы с использованием политики SELinux. Это повлечет за собой:

  1. Создание типов для двоичных файлов (например, foo1_exec_t и foo2_exec_t)
  2. Создание типов для процессов (например, foo1_t и foo2_t)
  3. Укажите, что когда пользовательский тип (вероятно, unconfined_t) выполняет foo1_exec_t, он переходит на foo1_t и аналогичен для foo2

Затем вам нужно создать пользовательский тип для test.txt (например, test_t)

Как только вы это сделаете, вы можете написать любую политику, которая вам нравится (включая правило auditallow для конкретного нужного вам доступа). Суть в том, что при создании пользовательских типов вам нужно будет указать для них полный доступ.

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

...