SELinex权限问题调试

SELinex调试

 

当SELinux处于enforcing模式下时某些程序的执行会失败,在这里总结此类问题的总体分析方法。

1、首先排除DAC权限的问题,使用“ls –l”检查相关文件的属主和权限。如果DAC的权限许可,则就是SELinux的策略显式地拒绝了当前操作的执行。


2、通过“setenforce 0”命令进入permissive模式(getenforce命令查看模式)。此操作可暂时关闭selinux强制访问控制,可直接进行调试,若此时操作还是不允许,则与selinux无关。重启后还原成默认模式。


3、通过“dmesg | grep avc”查看 AVC log,从分析失败操作相应的AVC Denied Msg入手区分问题的根源,以下为一条拒绝信息:

type=1400 audit(1392617891.300:4): avc: denied  { write } for  pid=1639 comm="fsck.exfat"name="log" dev="tmpfs" ino=1300 scontext=u:r:vold:s0tcontext=u:object_r:log_device:s0 tclass=dir


4、通过log信息可知,源域类型为vold,目标域类型为log_device,客体类别为dir,需要的权限为write,可在device/softwinner/wing-common/sepolicy下添加以下策略:

allow vold log_device:dir { write }


5、以上处理即可允许该操作,若需要自定义新的域类型。从Log中的comm="fsck.exfat"可找到应用名称,然后通过find命令找找到应用所在,然后通过命令“ls -Z /system/bin/fsck.exfat”查看安全上下文,fsck.exfat为system_file类型:

-rwxr-xr-x root     shell             u:object_r:system_file:s0fsck.exfat


6、添加以下策略及定义:

type newtype, domain; #定义新的域类型

permissive newtype;

type newtype_exec, file_type, exec_type;

domain_auto_trans(vold, newtype_exec, newtype) #域转换宏

unconfined_domain(newtype)

/system/bin/fsck.exfat u:object_r:newtype_exec:s0

allow newtype_exec log_device:dir { write }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值