selinux

Documentation/Security/SELinux.txt
http://oss.tresys.com/
《selinux详解中文版》


selinux明确指定某个进程可以访问哪些资源(文件、网络端口等)


selinux有两种工作模式,permissive和enforcing。
Android上可通过

adb shell setenforce 1
adb shell setenforce 0

打开或关闭selinux。


selinux的基本规则:
rule_name source_type target_type:class perm_set
为source_type设置一个rule_name的规则,规则规定了对target_type的class进行perm_set操作的权限。

rule_name有以下几种:

  • allow 对指定的操作允许。
  • allowaudit 对指定的操作成功时也做记录
  • dontsudit 对指定的操作不做记录
  • neverallow 不赋予指定的操作权限

soure_type通常是进程。
需要将进程指定一个域,用type命令。
type命令的语法:
type type_id [alias alias_name,] [attribute_id]
声明一个type_id,别名为alias_name,属性为attribute_id。
attribute_id是任意认定的还是在有限的选项中选择 ?
例如给shell进程指定域
type shell domain
之后就可以 allow shell …

target_type
通常是文件(包括设备文件、网络端口等)
target_type需要两个操作,1个是给文件指定一个标签,2是指定type属性。

举一个rndis的例子:
第1步,给文件打标签。 Android系统通常在contexts文件中打标签。
genfscon sysfs xxx/rps_cpus u:object_r:sysfs_rndis:s0
其中的sysfs_rndis就是标签。
第2步,指定类型的属性:
type sysfs_rndis fs_type,sysfs_type
指定了sysfs_rndis的属性。一般放在file.te文件中。
第3步,指定规则
allow init sysfs_rndis:file {open write}


ps -Z 可以查看进程的selinux相关信息。
ls -Z 可以查看文件的selinux相关信息。


Android selinux规则放在 system/sepolicy/
还可以用BOARD_SEPOLICY_DIRS添加各te文件和安全配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值