程序管理与SELinux初探-理论篇

工作管理概念(job control)

1前台:你可以控制与执行命令的这个环境称为前台

2后台:可以自行运行的工作,你无法ctrl+c终止它,可以使用bg/fg调用该工作

3后台中执行的进程不能等待terminal/shell的输入

suid other执行二进制文件的身份是文件所属者的身份

sgid 多用户创建文件同属一个用户组,共享文件

sbit  在others的x位置设置t具有x权限,T不具有x权限、具有t表示只有自己和root可以删除自己创建的文件

/proc/* 内存

1)查看已打开文件或者已执行程序打开的文件 fuser

2)lsof 列出被进程所打开的文件名

二,SELinux初探

运行模式:
MAC强制访问控制

控制的主体是进程,目标则是该进程能否读取的文件资源。

主体:进程

目标:文件系统

策略:默认的基本安全访问策略,策略内会有详细的规则(rule),两个主要的策略

1)targeted 针对网络服务限制较多,针对本机限制较少,是默认的策略

2)strict 完整的SELinux限制,较为严格

3)安全上下文,主体访问目标,除了策略指定外,主体和目标的安全上下文必须一致才可以访问

类似文件系统的rwx权限,

查看安全上下文  ls -Z

分为三个字段,用冒号分隔,

第一个:身份标识

第二个:角色

object_r:代表文件或者目录等文件资源,常见

system_r:代表进程,但是,一般用户也会被指定称为system_r

第三个:类型 ,最重要,决定进程能不能访问文件资源,针对文件和进程定义不通

type:在文件资源(Object)上面称为类型

domain:在主体程序(Subject)中则称为域(domain)了

domain需要与type搭配,则改程序才能顺利读取文件资源

如图,身份和角色一致,角色都是 system_u ,根据角色可以看到两个都是文件系统,但是类型不一样

查看SELinux类型模式

enforcing:强制模式,permissive:宽容模式,disabled:关闭

查看模式:getenforce

查看当前策略:sestatus

SELinux的配置文件

注意:如果修改策略则需要重新启动

关闭模式下切换不了模式,下图是两种模式的切换,0宽容模式,1强制模式

SElinux网络服务运行范例 、usr/sbin/httpd

1.网络服务的启动与查看

一般服务启动脚本在/etc/init.d目录下,但是centos7 启动方式改systemctl 了

启动后会生成很多子进程管理网络服务

在对应目录新建一个html文件测试访问,和window建立站点类似感觉就是一样不过这个比较简单

查看新建文件的安全上下文

测试二:切换其他路径,新建html文件,然后mv到这里,之前的可以删除或者改名字,在测试

查看文件的安全上下文

和之前的不一样了,想要正常访问,修改安全上下文中的类型字段

如何修改?chcon 参数自查,修改完以后测试是否正常

还有一个拿某个文件当范例修改后面的文件的类型

其实系统目录都有默认的安全上下文,如果恢复默认设置呢?restorecon 

有了这个命令处理安全上下文就好多了。以后遇到权限类似的问题,如果是安全上下文的问题,可以利用这个命令重置了。

setroubleshoot服务会将SELinux的错误信息和克服方法记录到/var/log/messages里面,所以这个服务一定要启动

查看setroubleshoot服务是否启动

查看/var/log/message的信息时候,会针对出现的问题提供解决的办法,可以按照提示操作解决问题,可以说非常方便,上图

SELinux的策略与规则管理

seinfo 查看策略规则

有个-b参数,列出规则的种类(布尔值) 

布尔值的查询 getsebool

布尔值的修改 setsebool -P 规则名=0或1

默认目录的安全上下文查询和修改

自定义目录测试,指定public_content_t类型

自定义的内容写入到相关配置文件,注意:不可以直接修改

sesearch 查看详细规则,比如目标文件类型可以被哪个主体程序的类型所读取,以及目标文件资源格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227479.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL高级--01_1--数据库缓冲池(buffer pool)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 数据库缓冲池(buffer pool)DBMS 会申请占用内存来作为数据缓冲池,在真正访问页面之前,需要把在磁盘上的页缓存到内存中的Buffer Pool 之后才…

【已解决】ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘

问题描述 ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘ 解决办法 1、tensorflow和keras版本要对应; 2、使用"merge" pip uninstall keras pip install keras2.3.1 from keras.layers import merge完结撒花 我这血中带泪的成长&…

35、Django进阶:项目多种数据库配置方式和使用(MySQL、PGSQL、ES、MongoDB、InfluxDB)详解

目录 新建的Django初始内置项目的数据库为什么使用SQLite SQLite的应用场景及优缺点 SQLite的应用场景及优点 SQLite不适用的场景及缺点 为什么使用MySQL Django配置和使用MySQL Django配置和使用PostgreSQL PGSQL的特点 安装与配置PostgreSQL 安装第三方库psycopg2 …

CSM2433 一款集成2.4G+125K 和8位RISC 的SOC芯片

CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片。 无线收发器特性: 发射工作在 2.4GHz ISM 频段 发射兼容 BLE 4.2 接收工作在 15KHz-150KHz 内置 32 次可编程 NVM 存储器 3.3V 编程电压 集成低电…

【面试经典150 | 二叉树】对称二叉树

文章目录 写在前面Tag题目来源解题思路方法一:递归方法二:迭代 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的…

区块链optimism主网节点搭建

文章目录 官方参考资料编译环境搭建编译Optimism Monorepo编译op-geth 执行下载数据快照生成op-geth和op-node通信密钥op-geth执行脚本 op-node执行脚本 启动日志op-gethop-node 本文是按照官方参考资料基于源码的方式成功搭建optimism主网节点。 官方参考资料 源码&#xff1…

快速排序的非递归实现

上期我们实现了快速排序的递归实现,但是我们知道如果递归深度太深,栈就会溢出,所以我们本期将为大家讲述快速排序的非递归实现,我们需要用到栈的数据结构,我们知道栈中的数据全是在堆区开辟的空间,堆的空间…

大数据分析与应用实验任务十一

大数据分析与应用实验任务十一 实验目的 通过实验掌握spark Streaming相关对象的创建方法; 熟悉spark Streaming对文件流、套接字流和RDD队列流的数据接收处理方法; 熟悉spark Streaming的转换操作,包括无状态和有状态转换。 熟悉spark S…

Leetcode—190.颠倒二进制位【简单】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—190.颠倒二进制位 算法思路 实现代码 class Solution { public:uint32_t reverseBits(uint32_t n) {uint32_t res 0;for(int i 0; i < 32 && n > 0; i) {res | (n & 1) << (31 - i);n >&…

SpringDataJPA基础

简介 Spring Data为数据访问层提供了熟悉且一致的Spring编程模版&#xff0c;对于每种持久性存储&#xff0c;业务代码通常需要提供不同存储库提供对不同CURD持久化操作。Spring Data为这些持久性存储以及特定实现提供了通用的接口和模版。其目的是统一简化对不同类型持久性存储…

Verilog学习 | 用initial语句写出固定的波形

initial beginia 0;ib 1;clk 0;#10ia 1; #20ib 0;#20ia 0; endalways #5 clk ~clk; 或者 initial clk 0;initial beginia 0;#10ia 1; #40ia 0; endinitial beginib 1;#30 ib 0; endalways #5 clk ~clk;

Linux本地部署1Panel服务器运维管理面板并实现公网访问

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

一些系统日常运维命令和语句

一、前言 记录一些日常系统运维的命令和语句 二、linux命令与语句 1、linux查看各目录使用磁盘情况 du -h /home home为目录 du -h /home 2.查看内存使用情况 free -h 3、查看进程和CPU使用情况 top top 三、数据库语句 1、统计mysql数据库表数量 SELECT COUNT(*) A…

【Linux--基础IO】

目录 一、系统文件接口1.1 open1.2 write1.3 read1.4 close 二、文件描述符三、文件描述符的分配规则四、重定向4.1输出重定向的原理4.2dup2函数的系统调用 五、缓冲区5.1代码及现象5.2原理解释5.3C语言FILE 六、文件系统6.1磁盘的介绍6.1磁盘的分区管理 7、软硬连接7.1软连接7…

基于FPGA的温度控制系统设计(论文+源码)

1.系统设计 本次基于FPGA的智能温度控制系统&#xff0c;以FPGA为控制核心&#xff0c;采用自顶向下的设计方法&#xff0c;按照模块化设计的思路分别实现各个模块&#xff0c;再加以整合实现整个系统&#xff0c;从而达到了温度控制的目的。系统以水箱为被控对象&#xff0c;…

【Spring 源码】 深入理解 Bean 定义之 BeanDefinition

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

Python文件操作(txt + xls + json)

文章目录 简介1、使用with_open读取和保存&#xff1a;.txt .bin&#xff08;二进制文本&#xff09;1.1、with open语句详解1.1、项目实战 2、使用pandas读取和保存&#xff1a;.xls .xlsx2.1、pandas简介2.2、环境配置2.3、项目实战 3、 使用json.dump读取和保存&#xff1…

如何查询川菜食材配料的API接口

在当今的美食文化中&#xff0c;菜谱不只是一张简单的食谱&#xff0c;更是了解美食文化和饮食知识的重要途径。然而&#xff0c;若没有准确的食材配料&#xff0c;烹制出的每道菜品都将难以达到完美的味道。因此&#xff0c;为了更好地满足人们对于菜谱和食谱的需求&#xff0…

Avalonia中如何实现文件拖拽上传

前言 前面我们讲了在Avalonia中如何将View事件映射到ViewModel层感兴趣的读者可以看一下&#xff0c;本章我们将讲一下在Avalonia框架下如何实现文件和文字的拖拽到指定区域进行处理和上传。 先看效果 界面设计比较简单&#xff0c;还是在前一张的基础上加了一个指定区域&…

Vue使用百度地图以及实现轨迹回放 附完整代码

百度地图开放平台 https://lbs.baidu.com/index.php?title%E9%A6%96%E9%A1%B5 javaScript API https://lbs.baidu.com/index.php?titlejspopularGL 百度地图实例 https://lbsyun.baidu.com/index.php?titleopen/jsdemoVue Baidu Map文档 https://dafrok.github.io/vue-baidu…