设置安全上下文常用命令
setfilecon
setfilecon介绍
setfilecon用于设置文件/目录的安全上下文,后面直接跟上安全上下文以及文件的路径,其中待设置的文件/目录路径可以为多个,除此外没有其他的参数和选项,非常简单粗暴。
setfilecon的获取
如果提示没有安装这个命令,则需要先安装selinux-utils工具包
sudo apt install selinux-utils
setfilecon 使用实例
设置单个文件或者目录的安全上下文
同时设置多个文件/目录的安全上下文
设置目录下的文件/目录的安全上下文![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0231410e7a86c905dc2abd6d4490bcda.png)
使用setfilecon注意事项
由于修改文件的安全上下文是一种敏感操作,因此需要以root权限运行setfilecon,才能成功设置文件的安全上下文,普通用户则需要加上sudo再使用这个命令。如果以普通用户的权限使用setfilecon,则会提示设置安全上下文失败
setfattr
setfattr介绍
setfattr是Linux系统下用于设置文件扩展属性(Extended Attributes,简称EA)的命令。EA是目前流行的POSIX系统中文件系统具有的一项特殊功能,可以给文件、文件夹添加额外的key/value的键对值,键和值都是字符串并且有一定长度的限制。SELinux中使用的安全上下文,其实就是文件EA的其中一种。关于EA的详细介绍,可以参考:
http://wiki.linuxquestions.org…s
相比于setfilecon,setfattr的功能要更强大,setfilecon只能用于设置安全上下文,而setfattr可用于所有EA的设置,还包括自定义的EA,因此setfattr的用法也相对复杂一些。
setfattr的获取
如果需要使用setfattr命令,需要先按照xattr工具包
sudo apt-get install attr
setfattr使用实例
设置文件安全上下文主要利用下面两个选项
-n选项表示需要设置的EA属性名称,即前面提到的key,安全上下文对应的属性名称是security.selinux
-v选项表示需要设置的属性值,即前面提到的value,后面的参数即具体的安全上下文
使用setfattr注意事项
和setfilecon命令一样,涉及到修改文件安全上下文的操作都需要以root权限执行,否则会出现设置安全上下文失败的问题。
getfattr
setfattr可以用于设置文件的EA,与之相对,getfattr可以用于检查getfattr的EA,getfattr也包含在xattr工具包中。和设置文件安全上下文不同的是,不需要root权限也可查看文件的安全上下文。
软链接文件的安全上下文设置
在某个目录下,有两个文件orifile和soffile,其中soffile是orifile的软链接文件,且两个文件都不具备安全上下文
使用setfilecon设置软链接文件的安全上下文
使用setfilecon命令对软链接文件soffile设置安全上下文,并用ls -Z查看设置结果,可以看到,是有setfilecon对软链接文件进行安全上下文设置,最后是对源文件orifile产生了作用,而软链接文件本身还是不具备安全上下文。
使用setfattr设置软链接文件的安全上下文
setfattr命令的-h选项,可以在设置软链接文件的安全上下文时不引用到源文件
当在setfattr使用-h选项,可以直接对软链接文件本身进行安全上下文的设置
matchpathcon
matchpathcon介绍
matchpathcon用于在指定的安全上下文定义文件查找某个文件对应的安全上下文,输入文件名和安全上下文定义文件,即可返回该文件的安全上下文。
matchpathcon的获取
和setfilecon命令一样,如果提示没有安装这个命令,则需要先安装selinux-utils工具包
matchpathcon使用实例
指明file_contexts所在路径,以及文件名,即可返回文件在file_contexts中对应的安全上下文