如何使用SELinux安全上下文在rootfs上标记新文件?

时间:2019-03-26 13:18:23

标签: selinux

我目前正在为嵌入式设备(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 in the selinuxproject.org wiki的描述听起来像是各个文件系统上的所有内容都将获得指定的安全性上下文。但是,restoreconchcon似乎可以分配任意上下文(并且根据mount,rootfs使用选项seclabel挂载)。

任何人都可以详细说明事情如何正常运行吗?以及如果可能的话,如何在/ etc中为文件指定类型转换-作为既不使用etc_t也不使用root_t的目标类型呢?

0 个答案:

没有答案