预设置只读文件系统squashfs上的文件的扩展属性的方法
来源:互联网 发布:散打教学软件 编辑:程序博客网 时间:2024/06/06 11:39
出于安全考虑,有时候我们会在嵌入式系统中使用可读的文件,比如romfs和squashfs,这类文件系统一旦烧录并且挂载后,整个分区都是不可写的,即使是重新挂载,指定RW属性也无法修改这一特性。
由于这个特性,我们无法通过SELinux 的策略去设置文件系统上文件的安全属性,因为策略都是在文件系统挂载完毕才生效的,此时虽然系统会尝试去标记文件的安全上下文,但是安全上下文是文件扩展属性的一部分,修改安全上下文相当于修改文件的扩展属性,只读文件系统无法进行这样子的操作。
那么在SELinux中,只读文件系统上文件的安全上下文是如何定义的呢?需要用到fs_use_xattr语句,这个语句有两个作用:一是规定文件系统上的文件使用扩展属性作为文件的安全上下文;二是规定文件系统本身的安全上下文。
设置文件系统squashfs上的文件的扩展属性方法
那么同样地,我们需要找出预设置文件系统上文件的扩展属性的方法,下面说明如何预设置squashfs文件系统上文件的扩展属性。
squashfs对应的打包工具是mksquashfs,其中有一个默认选项xattr:
只要预先设置好每个文件的安全上下文,使用mksquashfs打包时自然就会把文件的扩展属性带上。
然后在SELinux的策略中,加上下面的语句,只要设置文件的扩展属性,就会优先使用扩展属性中的安全上下文:
fs_use_xattr的作用
可以看到fs_use_xattr后面还跟着一个安全上下文,这个安全上下文具体其实就是用在上面提到的fs_use_xattr的第二个作用:规定文件系统本身的安全上下文。
使用文件系统前必须进行挂载,挂载的时候需要指定文件系统类型。在SELinux中,挂载也是一种可以进行控制的访问操作,在挂载文件系统这个场景下,squashfs的安全上下文就是目标安全上下文,因此fs_use_xattr中规定的安全上下文是用在需要对某种类型的文件系统进行操作时,作为客体(文件系统类型)的安全上下文。
只读文件系统的文件没有预设置扩展属性时,文件的默认安全上下文会是什么?
如果对只读文件系统上的文件,我们没有在打包烧录前就设置好文件的安全上下文,那么烧录到target后,这些文件的安全上下文会是什么?答案是取决于策略中的sid unlabeled语句定义的安全上下文。SELinux预留了27项利用sid策略语句设置初始安全上下文的主体和客体。其中,当系统中有主体/客体没有默认的安全上下文时,比如对squashfs文件系统上的文件,我们不预先设置安全上下文,当烧录到target上后,由于其只读属性,SELinux也无法对这些文件标记安全上下文,此时文件的安全上下文就使用sid unlabeled后定义的安全上下文进行标记,如下面的例子,没有默认安全上下文的主体/客体的安全上下文会全部被标记为system_u:object_r:unlab_t。
这27项不能多页不能少,否则编译SELinux策略时会报错。
- 预设置只读文件系统squashfs上的文件的扩展属性的方法
- 只读文件系统 squashFS
- 基于squashfs的gluebi文件系统开发
- 解压 使用squashfs工具创建的 xx.squashfs.img文件
- 更改linux文件系统为只读的方法
- 使用mkfs.ubifs制作文件系统时写入文件扩展属性的方法
- Python 中去除文件的只读属性
- 在.NET去掉文件的只读属性
- 破解SSDT的只读属性(MDL方法)
- 只读属性的赋值
- squashfs 的挂载
- 文件系统的扩展属性:xattr命令
- 在Android中想要把预设的文件复制到指定文件系统中
- Kotlin的扩展属性和扩展方法
- Ubuntu下U盘变成只读,提示“只读文件系统”或“只读文件系统”的问题
- 具有只读属性的ComboBox
- 设置列的只读属性
- 设置input的只读属性
- 针对Unity NGUI图集的Alpha通道分离优化
- SDL系列讲解(十二)创建窗口流程
- 面试题24:二叉搜索树的后序遍历序列
- Regular Expression Matching--LeetCode
- poj 2965 The Pilots Brothers' refrigerator 【dfs+枚举】【双十一大礼包】【刷题计划】
- 预设置只读文件系统squashfs上的文件的扩展属性的方法
- 惊群
- GAN和DCGAN的讨论
- android SDL系列讲解(十三) 播放音乐库 SDL_mixer教程
- iscsi:IO操作流程(二)
- 1015. 德才论 (25)
- 八数码
- numpy.array学习笔记
- 数据结构实验之二叉树三:统计叶子数