SELinux学习(一)

来源:互联网 发布:魔兽世界种族寿命 知乎 编辑:程序博客网 时间:2024/06/01 10:48

一:SELinux基本概念

SELinux介绍:  点击打开链接
SELinux Android介绍:点击打开链接
SElinux Android介绍二:  点击打开链接  
SELinux的全称是Security Enhanced Linux。
DAC:(Discretionary Access Control),自主访问控制,依据进程的所有者与文件资源的rwx权限来决定有无访问的能力。
DAC的缺点:如果某个具有root权限的程序被其他人获取,那么该程序可以访问系统上的任何资源,如果某个文件的权限不小心变为777,那么系统上任何进程都可以访问该文件。
MAC:(Mandatory Access Control)强制访问控制,可以针对特定进程和特定文件资源进程权限管控,也就是可以控制一个进程可以访问哪些文件,一个文件可以被哪些进程访问,这样即使root用户也不一定能访问所有的文件了。

SELinux 是透过 MAC 的方式来控管程序


2,android平台SELinux的利用

1,ALLow: allow
2,Domain: appdomain
3,Context: app_data_file:file rw_file_perms
這個Policy Rule用來表示, 屬於Domain Appdomain的應用程式,被允許可以讀寫有被標籤屬於 "app_data_file" 的應用程式檔案.在編譯過程後,這就會成為SELinux Policy新增的一部分.


举例:
allow shell input_device:dir r_dir_perms
以上input_device代表的含义是在external/sepolcy/file_context里定义,r_dir_perms代表的含义是在external/sepolicy/access_vectors, external/sepolicy/security_classes 與 Linux Kernel security/selinux/include/classmap.h里定义的。
点击打开链接
透過 ls –Z,則可以查核每個檔案物件配置的Security屬性,同樣的根據File Type,Security與路徑簡要分類如下


3.*.te文件格式

控制语句格式
rule_name  source_type target_type: class perm_set
rule:  控制类型,分成两方面 allow 以dontaudit auditallow neverallow
source_type:也叫subject,通常是domain。
Target_type:  代表请求的资源的类型
classperm_set: 代表对资源访问的操作

4,SELinux Tools
SElinux filesystem在用户空间接口是/sys/fs/selinux 


0 0
原创粉丝点击