操作系统有两类访问控制:自主访问控制(DAC)和强制访问控制(MAC)。标准Linux安全是一种DAC,SELinux为Linux增加了一个灵活的和可配置的的MAC。

进程启动时所拥有的权限就是运行此进程的用户权限,一个进程能访问哪些文件取决于该文件的主、组和其他权限,这就是DAC

如一个用户运行了进程,运行此进程需要若干个文件,但该进程具有的权限是与该用户的权限一致,即该进程能访问此用户能够访问的所有文件。Linux自身是无法限定某个进程只能访问其运行需要的指定文件,因此MAC,就是不让进程在该用户权限下访问它不需要文件,即使进程是有权限访问的。

那么是如何实现的?
每个进程启动时,给它划定一个范围,只能访问此范围内的资源。但是每种程序运行依赖的资源或权限并不相同,并不可能为每一种程序制定范围。所以有如下两种工作级别。

SELinux工作级别
        restrict:每个进程都受selinux的控制
        targeted:仅有限的进程受到控制,通常只监控容易受到入侵的进程

SELinux工作模型

存在三种角色subject   operation   object
        subject:主体,操作的发起者
        operation:操作,主体能够执行什么样的操作取决于客体所支持的操作
        object:客体,操作的作用对象
        通常动作的发起者是进程,进程可以对诸如文件或者进程等对象执行操作,那针对文件来说可以支持的操作有读、写、打开、关闭及更改权限等,针对进程作为客体,执行的操作有杀死、创建等

每一个进程都有一个标签。操作系统中的每一个文件/目录客体object也都有一个标签。甚至连网络端口、设备,乃至潜在的主机名都被分配了标签。标签有五部分组成USER:ROLE:TYPE[LEVEL[:CATEGORY]]。user指的是SELinux的user非系统user,LEVEL和CATEGORY:定义层次和分类,只用于mls策略中。

进程通过标签划分在不同的域,文件通过标签定义为不同个类型。SElinux存在一规则库,其中定义了哪种域能够访问哪些类型内的文件。如某进程要访问一个文件,但是此进程的域与文件的类型不在同一范围内那么要如何突破限制,这时候就要修改标签。
SELinux的策略通常是编译成二进制文件以加速访问。

如何使用SELinux

(1)  /etc/sysconfig/selinux打开或关闭SELinux
               SELINUX=enforcing|permissive|disabled
               从disable状态启用,需要重启系统,让系统上的所有文件重新打上标签。permissive不禁止,但会计入日志/var/log/audit/audit.log
               getenforce/setenforce 0|1  获取或更改当前状态
        (2)查看、更改文件标签
             ps –Z :检查进程的安全上下文;
             ls -Z :检查文件、目录的安全上下文
             chcon [-u USER] [-r ROLE] [-t TYPE]
              一般目录下的文件具有“目录名_t”的类型,更改文件标签类型可以在不更改主(组)的情况下限制进程对其的访问。
              还原文件的默认标签 ,restorecon [-R] path/file
        (3)SELinux的布尔型开关
               getsebool -a: 列出SELinux的所有布尔值
               setsebool: 设置SELinux布尔值,如:setsebool -P dhcpd_disable_trans=0,-P表示重启后也能生效,直接写入规则库

参考:http://blog.csdn.net/myarrow/article/details/9856095/

转载于:https://www.cnblogs.com/otherside/p/6683429.html

SELinux入门简介相关推荐

  1. linux中seliunux配置文件,SELinux 入门简介

    几乎可以肯定每个人都听说过 SELinux (更准确的说,尝试关闭过),甚至某些过往的经验让您对 SELinux 产生了偏见.不过随着日益增长的 0-day 安全漏洞,或许现在是时候去了解下这个在 L ...

  2. Markdown入门简介

    参考 http://sspai.com/25137 作者: Te_Lee 文章来源: 少数派 Markdown入门简介(使用工具Haroopad) 一.使用的工具----haroopad(http:/ ...

  3. 分布式文件系统—HDFS—入门简介

    原文作者:Zh_Y_G 原文地址:HDFS入门简介 目录 HDFS是什么? 设计目标: 安装配置 HDFS读写流程图解 CheckPoint HDFS是什么? 易于扩展的分布式文件系统 运行在大量普通 ...

  4. Logstash入门简介

    Logstash入门简介 介绍 Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch) ...

  5. android 教程概要,Android精通教程-第一节Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...

  6. 车联网大数据框架_大数据基础:ORM框架入门简介

    作为大数据开发技术者,需要掌握扎实的Java基础,这是不争的事实,所以对于Java开发当中需要掌握的重要框架技术,也需要有相应程度的掌握,比如说ORM框架.今天的大数据基础分享,我们就来具体讲一讲OR ...

  7. 掌握 Ajax,第 1 部分: Ajax 入门简介

    2019独角兽企业重金招聘Python工程师标准>>> 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作原理,构建网站的一种有效方法 Ajax 由 HTM ...

  8. 大数据与Hadoop有什么关系?大数据Hadoop入门简介

    学习着数据科学与大数据技术专业(简称大数据)的我们,对于"大数据"这个词是再熟悉不过了,而每当我们越去了解大数据就越发现有个词也会一直被提及那就是--Hadoop 那Hadoop与 ...

  9. Linux防火墙入门:简介(转)

    Linux防火墙入门:简介(转) 前言 一旦连上网络,就充满各种危机. 许多人基于各式各样的理由,想侵入你的系统,这种人俗称为 cracker.尤有甚者,近年来,cracker 圈里流行一种结合病毒行 ...

最新文章

  1. .NET中栈和堆的比较 #1
  2. 9月份个人:windows系统的DNS服务器配置
  3. 百度安全入选中国工业互联网安全市场研究报告推荐服务商
  4. BCVP开发者说第3期:Adnc
  5. python作业题目用户输入行数、输出倒的等腰三角形_智慧职教云课堂APPPython程序设计(常州工业职业技术学院)作业期末考试答案...
  6. 十大有用但又偏执的Java编程技术
  7. 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
  8. 小心费力不讨好!Facebook成立“抄袭小组”压制Snap
  9. list 排序 java_java 怎么将List里面数据排序?
  10. 关于cc2500的介绍
  11. java实现发送qq邮箱验证码
  12. 快速检测npm registry镜像网址下载的速度
  13. IT培训机构怎么样?IT培训机构推荐
  14. marvell raid linux,MARVELL RAID管理软件操作演示
  15. 昨日黄花Hadoop 方兴未艾云原生——传统大数据平台的云原生化改造
  16. 在iOS中读取本地文件
  17. 微信小游戏存在的安全风险
  18. 计算机基础——二进制加法
  19. 出海东南亚:印尼网红营销现状和发展趋势
  20. Gated-SCNN: Gated Shape CNNs for Semantic Segmentation

热门文章

  1. 中高级JavaScript易错面试题
  2. Maven配置tomcat和jetty插件来运行项目
  3. 验证码(captcha)的由来
  4. U盘专杀工具,U盘防御软件,U盘病毒防火墙--UDiskSyS
  5. 8. Action过滤
  6. mysql 半同步关闭_MySQL的半同步模式配置
  7. getopt在Python中的使用
  8. visio画uml类图添加自定义数据类型
  9. Matlab代码的耗时分析、优化、加速
  10. AUTOSAR从入门到精通100讲(二十七)-AutoSar模式管理总揽