18.8 SELinux默认安全上下文的查询和修改

简介: 前面讲到,restorecon 命令可以将文件或目录恢复成默认的安全上下文,这就说明每个文件和目录都有自己的默认安全上下文,事实也是如此,为了管理的便捷,系统给所有的系统默认文件和目录都定义了默认的安全上下文。

前面讲到,restorecon 命令可以将文件或目录恢复成默认的安全上下文,这就说明每个文件和目录都有自己的默认安全上下文,事实也是如此,为了管理的便捷,系统给所有的系统默认文件和目录都定义了默认的安全上下文。

那么,默认安全上下文该如何查询和修改呢?这就要使用 semanage 命令了。该命令的基本格式如下:

[root@localhost ~]# semanage [login|user|port|interface|fcontext|translation] -l
[root@localhost ~]# semanage fcontext [选项] [-first] file_spec

其中,fcontext 主要用于安全上下文方面,-l 是查询的意思。除此之外,此命令常用的一些选项及含义,如表 1 所示。

选项 含义
-a 添加默认安全上下文配置。
-d 删除指定的默认安全上下文。
-m 修改指定的默认安全上下文。
-t 设定默认安全上下文的类型

【例 1】查询默认安全上下文。

[root@localhost ~]# semanage fcontext -l
\#查询所有的默认安全上下文
…省略部分输出…
/var/www(/.*)? all files
system_u:object_r:httpd_sys_content_t:s0
…省略部分输出…
\#能够看到/var/www/目录下所有内容的默认安全上下文都是httpd_sys_content_t

所以,一旦对 /var/www/ 目录下文件的安全上下文进行了修改,就可以使用 restorecon 命令进行恢复,因为默认安全上下文已经明确定义了。

【例 2】修改默认安全上下文。
那么,可以修改目录的默认安全上下文吗?当然可以,举个例子:

[root@localhost ~]# mkdir /www
\#新建/www/目录,打算用这个目录作为apache的网页主目录,而不再使用/var/www/html/目录
[root@localhost ~]# ls -Zd /www/
drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
\#而这个目录的安全上下文类型是default_t,那么apache进程当然就不能访问和使用/www/目录了

这时我们可以直接设置 /www/ 目录的安全上下文类型为 httpd_sys_content_t,但是为了以后管理方便,我打算修改 /www/ 目录的默认安全上下文类型。先查询一下 /www/ 目录的默认安全上下文类型,命令如下:

[root@localhost ~]# semanage fcontext -l | grep "/www"
\#查询/www/目录的默认安全上下文

查询出了一堆结果,但是并没有 /www/ 目录的默认安全上下文,因为这个目录是手工建立的,并不是系统默认目录,所以并没有默认安全上下文,需要我们手工设定。命令如下:

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"
\#这条命令会给/www/目录及目录下的所有内容设定默认安全上下文类型是httpd_sys_content_t
[root@localhost ~# semanage fcontext -l | grep "/www"
…省略部分输出…
/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
\#/www/目录的默认安全上下文出现了

这时已经设定好了 /www/ 目录的默认安全上下文。

[root@localhost ~]# ls -Zd /www/
drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
\#但是查询发现/www/目录的安全上下文并没有进行修改,那是因为我们只修改了默认安全上下文,而没有修改目录的当前安全上下文
[root@localhost ~]# restorecon -Rv /www/
restorecon reset /www context
unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
\#恢复一下/www/目录的默认安全上下文,发现类型已经被修改为httpd_sys_content_t

默认安全上下文的设定就这么简单。

目录
相关文章
|
Windows
解决 在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配
不用 “netsh winsock reset” 命令解决 “在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配”
解决 在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配
|
3月前
|
监控 安全 Linux
在Linux中,SELinux的作用是什么?如何临时和永久地更改SELinux上下文?
在Linux中,SELinux的作用是什么?如何临时和永久地更改SELinux上下文?
|
3月前
|
开发框架 .NET 数据库连接
操作筛选器的 1 个应用实例:自动启用事务
操作筛选器的 1 个应用实例:自动启用事务
|
6月前
|
开发工具
已设定选项 ‘readonly‘ (请加 ! 强制执行)
已设定选项 ‘readonly‘ (请加 ! 强制执行)
470 0
|
6月前
|
Shell
取消hosts文件隐藏属性的方法
取消hosts文件隐藏属性的方法
|
安全 Apache
18.7 SELinux安全上下文的修改和设置
安全上下文的修改是我们必须掌握的,其实也并不难,主要是通过两个命令来实现的。
446 0
18.7 SELinux安全上下文的修改和设置
|
开发框架 安全 .NET
不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 oveoverrideMode....
不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 oveoverrideMode....
663 0
不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 oveoverrideMode....
|
Java 应用服务中间件
publiccms中,怎么修改默认的端口8080以及默认上下文名称
publiccms中,怎么修改默认的端口8080以及默认上下文名称
130 0
|
缓存 Linux C语言
Linux下程序启动之后的初始化---检查配置文件及读取日志配置项的值
在程序进行具体的操作之前,一些初始化操作是必不可少的。本文中的示例只是涉及到检查配置文件和读取日志配置项两个操作,在实际的应用中可能还会有初始化数据库参数、建立与其他模块的通信链路等操作,这要视不同的程序而定。
2055 0