温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux中怎么利用semanage修改文本

发布时间:2021-07-27 17:40:05 来源:亿速云 阅读:273 作者:Leah 栏目:系统运维

今天就跟大家聊聊有关Linux中怎么利用semanage修改文本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

CentOS系统自带的chcon工具只能修改文件、目录等的文件类型和策略,无法对端口、消息接口和网络接口等进行管理,semanage能有效胜任SELinux的相关配置工作。

安装:

代码如下:


# yum -y install policycoreutils-python

用法:
semanage命令用来查询与修改SELinux默认目录的安全上下文。
 semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
 semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target

主要参数:


-a:添加
-d:删除
-m:修改
-l:列举
-n:不打印说明头
-D:全部删除
-f:文件
-s:用户
-t:类型
r:角色

基本使用:

管理登录linux的用户和SELinux局限的用户之间的映射。

代码如下:


semanage login [-S store] -{a|d|m|l|n|D} [-sr] login_name | %groupname


管理策略模块:

代码如下:


semanage module [-S store] -{a|d|l} [-m [--enable | --disable] ] module_name


管理网络端口类型定义

代码如下:


semanage port [-S store] -{a|d|m|l|n|D} [-tr] [-p proto] port | port_range


例:如apache采用非标准端口,需执行如下命令:

代码如下:


emanage port -a -t http_port_t -p tcp port_number


查看当前允许的httpd端口:

代码如下:


# semanage port -l|grep http
http_cache_port_t tcp 3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8888, 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989


注意:8888是我刚才添加的

管理网络接口类型定义

代码如下:


semanage interface [-S store] -{a|d|m|l|n|D} [-tr] interface_spec


管理网络节点类型定义

代码如下:


semanage node [-S store] -{a|d|m|l|n|D} [-tr] [ -p protocol ] [-M netmask] address


管理文件中映射定义

代码如下:


semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target


例:让 Apache 可以访问位于非默认目录下的网站文件

首先,用 semanage fcontext -l | grep '/var/www' 获知默认 /var/www 目录的 SELinux 上下文:

代码如下:


/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0


从中可以看到 Apache 只能访问包含 httpd_sys_content_t 标签的文件。

假设希望 Apache 使用 /srv/www 作为网站文件目录,那么就需要给这个目录下的文件增加 httpd_sys_content_t 标签,分两步实现。

首先为 /srv/www 这个目录下的文件添加默认标签类型:semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?' 然后用新的标签类型标注已有文件:restorecon -Rv /srv/www 之后 Apache 就可以使用该目录下的文件构建网站了。

其中 restorecon 在 SELinux 管理中很常见,起到恢复文件默认标签的作用。比如当从用户主目录下将某个文件复制到 Apache 网站目录下时,Apache 默认是无法访问,因为用户主目录的下的文件标签是 user_home_t。此时就需要 restorecon 将其恢复为可被 Apache 访问的 httpd_sys_content_t 类型:

代码如下:


restorecon -v /srv/www/foo.com/html/file.html
restorecon reset /srv/www/foo.com/html/file.html context unconfined_u:object_r:user_home_t:s0->system_u:object_r:httpd_sys_content_t:s0
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?" //新建一条规则,指定/web目录及其下的所有文件的扩展属性为httpd_sys_content_t

看完上述内容,你们对Linux中怎么利用semanage修改文本有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI