Как работает маркировка новых файлов в rootfs в контексте безопасности SELinux? - PullRequest
0 голосов
/ 26 марта 2019

В настоящее время я настраиваю эталонную политику для встраиваемого устройства (Linux 4.19, ptxdist) и столкнулся с проблемой, которая указывает на то, что я не понял части того, как работает маркировка новых файлов.Насколько я понял механизм, новые файлы наследуют тип своего родительского каталога, если не определен переход типа.Но, очевидно, я что-то упускаю:

root@mybox:/etc ls -lZd /etc
drwxr-xr-x   10 root     root     system_u:object_r:etc_t:s0               0 Jan  5 11:53 /etc
root@mybox:/etc > /etc/foo
root@mybox:/etc ls -lZd /etc/foo
-rw-r--r--    1 root     root     system_u:object_r:root_t:s0              0 Jan  5 12:37 /etc/foo

/ etc помечен типом etc_t, но недавно созданный файл / etc / foo получает тип root_t.Поэтому я ожидаю, что будет определен соответствующий переход типа, но, похоже, его нет:

root@mybox:/etc sesearch -T | grep root_t
type_transition sysadm_t home_root_t:dir user_home_dir_t;
type_transition sysadm_t root_t:file etc_runtime_t;
type_transition unconfined_t root_t:file etc_runtime_t;

Я предполагаю, что тот факт, что / etc находится в rootfs, связан, в частности, с оператором genfscon.в политике:

root@mybox:/etc seinfo --genfscon | grep rootfs
   genfscon rootfs /  system_u:object_r:root_t:s0

Это хорошо соответствует контексту / etc / foo.Описание genfscon в wiki selinuxproject.org звучит так, как будто все в соответствующей файловой системе получит указанный контекст безопасности.Однако restorecon и chcon, кажется, могут назначать произвольные контексты (и согласно mount rootfs монтируется с опцией seclabel).

Кто-нибудь может подробно рассказать о том, как все работает?И как, если это вообще возможно, указать тип перехода для файла в / etc - поскольку целевой тип, использующий ни etc_t, ни root_t, не работает?

...