产品,其te文件在\external\sepolicy路径下面。从这里面的te文件中,常看到的权限,
对于dir与file,主要有下面这些: dir:
create_dir_perms、search、r_dir_perms、rw_dir_perms、ra_dir_perms
file:
create_file_perms、r_file_perms、rx_file_perms、x_file_perms、rw_file_perms
在te文件中,增加权限的格式一般如下:
1、增加单个权限:allow xxx object_r:tclass 权限; 2、增加多个权限:allow xxx object_r:tclass {权限1 权限2 … 权限n}; 当在进程里面对某个文件操作失败时,需要检查是不是权限不满足,具体方法如下描述。
查看kmsgcat-log文件,搜索关键字“avc: denied”,找到对应操作文件的行。看看具体是什么类 型的文件没有什么样的权限。主要是看comm、scontext、tcontext、tclass这4个域和avc: denied后面
{}中的操作类型。
下面举2个例子:
02-03 02:28:29.234 <12>[ 220.856536s][pid:2624,cpu1,logd.auditd]type=1400 audit(1422930509.219:9): avc:
denied { read open } for pid=2547 comm=“xxx” path="/data/media/0/log" dev=“mmcblk0p40” ino=65540
scontext=u:r:xxx:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=1
这就表示,我们需要在xxx.te文件里面,增加以下内容来获取权限:
allow xxx media_rw_data_file:dir { read open };
当我们在framework中要读写某个文件,报如下权限问题时:
01-25 14:52:09.717 <36>[ 235.990081s][pid:383,cpu1,logd.auditd]type=1400 audit(1453704729.689:20): avc:
denied { search } for pid=4481 comm=“m.android.phone” ppid=532 ppid_comm=“main” name="/" dev=“mmcblk0p19”
ino=2 scontext=u:r
相关文章
- 07-30为已有文件添加 d.ts 声明
- 07-30添加注册表为软件增加管理员权限运行
- 07-30VSTO 为Office已有右键菜单添加自己的菜单项(word,Excel)
- 07-30为ECS实例添加下载OSS部署包的权限
- 07-30ASP.NET MVC系列:为已有模型添加新的属性
- 07-30RegisterUserFunc为测试对象添加新方法或重写已有方法
- 07-30Spring boot后台搭建二为Shiro权限控制添加缓存
- 07-30为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
- 07-30SELinux为已有进程添加权限
- 07-30MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限