SELinex权限问题调试
2015-11-07 12:41
204 查看
SELinex调试
当SELinux处于enforcing模式下时某些程序的执行会失败,在这里总结此类问题的总体分析方法。
1、首先排除DAC权限的问题,使用“ls –l”检查相关文件的属主和权限。如果DAC的权限许可,则就是SELinux的策略显式地拒绝了当前操作的执行。
2、通过“setenforce 0”命令进入permissive模式(getenforce命令查看模式)。此操作可暂时关闭selinux强制访问控制,可直接进行调试,若此时操作还是不允许,则与selinux无关。重启后还原成默认模式。
3、通过“dmesg | grep avc”查看 ***C log,从分析失败操作相应的***C 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 }
当SELinux处于enforcing模式下时某些程序的执行会失败,在这里总结此类问题的总体分析方法。
1、首先排除DAC权限的问题,使用“ls –l”检查相关文件的属主和权限。如果DAC的权限许可,则就是SELinux的策略显式地拒绝了当前操作的执行。
2、通过“setenforce 0”命令进入permissive模式(getenforce命令查看模式)。此操作可暂时关闭selinux强制访问控制,可直接进行调试,若此时操作还是不允许,则与selinux无关。重启后还原成默认模式。
3、通过“dmesg | grep avc”查看 ***C log,从分析失败操作相应的***C 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 }
相关文章推荐
- RBAC权限管理
- [279]Perfect Squares
- 基本数学公式复习
- 批处理+VBS+注册表实现开机自动启动EXE程序
- Redis系统管理
- Android 中listview点击一个item时背景色的设置
- WPF 基础到企业应用系列5——WPF千年轮回 续前缘
- ssh: connect to host localhost port 22: Connection refused (3)
- HDU 4044 GeoDefense
- php垃圾回收机制及内存泄露
- Oracle高级查询之OVER (PARTITION BY ..)
- recycleview示例
- (转)(异常分析) org.hibernate.MappingException: entity class not found
- ubuntu下安装、启动和卸载SSH
- Android例listview中android:descendantFocusability用法简析
- ubuntu14.04网易更新源
- (转)not found while looking for property错误
- 维护数据库安全的方法和系统
- 学习心得(三)
- 一种聊天机器人系统