用户和角色----SEAndroid in Android 5.x
2015-12-02 15:21
429 查看
在开启了SELinux的android系统中,通过 ps -Z 命令,可以看到当前系统中正在运行的程序的信息。
u:r:untrusted_app:s0 u0_a142 7677 256 com.cyanogenmod.lockclock
u:r:untrusted_app:s0 u0_a9 7732 256 com.android.mms
u:r:untrusted_app:s0 u0_a108 7765 256 com.chaozh.iReaderFree
通过ls -Z 命令,可以看到当前目录下文件的信息。
drwxrwx---root sdcard_r u:object_r:fuse:s0 umeng_cache
drwxrwx---root sdcard_r u:object_r:fuse:s0 weather
drwxrwx---root sdcard_r u:object_r:fuse:s0 youku
注意有颜色的部分:
u:r:untrusted_app:s0 u0_a142 7677 256 com.cyanogenmod.lockclock
drwxrwx---root sdcard_r u:object_r:fuse:s0
weather
红色代表用户。在android系统中,其实只有一个用户u。
绿色代表角色。在android系统中,所有主体的角色都是r,客体的角色都是object_r。
蓝色代表类型,这一部分非常重要,seandroid的所有控制机制,基本上就是基于他们来执行的。
灰色是安全级别,目前只用到了s0。
通过external/sepolicy/users和external/sepolicy/roles文件的内容,我们就可以看到SEAndroid所定义的SELinux用户和SELinux角色。
文件external/sepolicy/users的内容如下所示:
user u roles{ r } level s0 range s0 - mls_systemhigh;
文件external/sepolicy/roles的内容如下所示:
roler;
role r typesdomain;
如果没有出现其它的user或者role声明,那么就意味着只有u、r和domain可以组合在一起形成一个合法的安全上下文,而其它形式的安全上下文定义均是非法的。
但是!!!!!与此同时!!!!!!!!!!!!!!!!!!!!!!
SEAndroid使用声明属性(attribute)的方法,扩展了domain(在external/sepolicy/attributes文件中可以找到所有的attributes)。例如在zygote.te文件中有:
type zygote, domain;
这就是说,zygote声明自己具有domain的属性,也就可以和domain一样,和u,r一起组成合法的安全上下文。
同样,除了进程(主体)的安全上下文可以声明属性外,客体的安全上下文,也可以声明属性,在file.te中:
type system_data_file, file_type, data_file_type;
这就是说,system_data_file具有file_type和data_file_type两个属性。
在SEAndroid中,我们通常将用来标注文件的安全上下文中的类型称为file_type,而用来标注进程的安全上下文的类型称为domain,并且每一个用来描述文件安全上下文的类型都将file_type设置为其属性,每一个用来进程安全上下文的类型都将domain设置为其属性。
u:r:untrusted_app:s0 u0_a142 7677 256 com.cyanogenmod.lockclock
u:r:untrusted_app:s0 u0_a9 7732 256 com.android.mms
u:r:untrusted_app:s0 u0_a108 7765 256 com.chaozh.iReaderFree
通过ls -Z 命令,可以看到当前目录下文件的信息。
drwxrwx---root sdcard_r u:object_r:fuse:s0 umeng_cache
drwxrwx---root sdcard_r u:object_r:fuse:s0 weather
drwxrwx---root sdcard_r u:object_r:fuse:s0 youku
注意有颜色的部分:
u:r:untrusted_app:s0 u0_a142 7677 256 com.cyanogenmod.lockclock
drwxrwx---root sdcard_r u:object_r:fuse:s0
weather
红色代表用户。在android系统中,其实只有一个用户u。
绿色代表角色。在android系统中,所有主体的角色都是r,客体的角色都是object_r。
蓝色代表类型,这一部分非常重要,seandroid的所有控制机制,基本上就是基于他们来执行的。
灰色是安全级别,目前只用到了s0。
通过external/sepolicy/users和external/sepolicy/roles文件的内容,我们就可以看到SEAndroid所定义的SELinux用户和SELinux角色。
文件external/sepolicy/users的内容如下所示:
user u roles{ r } level s0 range s0 - mls_systemhigh;
文件external/sepolicy/roles的内容如下所示:
roler;
role r typesdomain;
如果没有出现其它的user或者role声明,那么就意味着只有u、r和domain可以组合在一起形成一个合法的安全上下文,而其它形式的安全上下文定义均是非法的。
但是!!!!!与此同时!!!!!!!!!!!!!!!!!!!!!!
SEAndroid使用声明属性(attribute)的方法,扩展了domain(在external/sepolicy/attributes文件中可以找到所有的attributes)。例如在zygote.te文件中有:
type zygote, domain;
这就是说,zygote声明自己具有domain的属性,也就可以和domain一样,和u,r一起组成合法的安全上下文。
同样,除了进程(主体)的安全上下文可以声明属性外,客体的安全上下文,也可以声明属性,在file.te中:
type system_data_file, file_type, data_file_type;
这就是说,system_data_file具有file_type和data_file_type两个属性。
在SEAndroid中,我们通常将用来标注文件的安全上下文中的类型称为file_type,而用来标注进程的安全上下文的类型称为domain,并且每一个用来描述文件安全上下文的类型都将file_type设置为其属性,每一个用来进程安全上下文的类型都将domain设置为其属性。
相关文章推荐
- 概述----SEAndroid in Android 5.x
- 为android编译libkaliumjni和libsodium
- 爲android添加一個新的底層service…
- Android动画_ScaleAnimation
- android输入法ImeOptions
- Android Studio 创建项目的项目R文件不更新问题
- Android开发错误集锦
- Html5启动android app及两者间的数据交互全面总结
- Android Context完全解析
- 底部导航用FragmentTableHost实现
- Android Bundle类
- Android SDK 开发范例大全 ---3.9调用另一个Activity
- ImageView src Background 的区别
- Android动画_AlphaAniamtion
- Android学习笔记——五大基本布局+AbsoluteLayout
- Android--通知之Notification
- Android动画效果生动有趣的通知NiftyNotification(Android Toast替代品)
- NiftyNotification (Android Toast替代品)
- Android 程序框架设计
- android中遇到的java反射