
1)/etc/passwd 的内容理解:
在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割,比如下面是我的系统中的/etc/passwd 的两行;
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:501:502::/home/linuxsir:/bin/bash
第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;请参看本文的UID的解说;
第四字段:GID;请参看本文的GID的解说;
第五字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
第六字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ;
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
第一字段:用户组名称;
第二字段:用户组密码;
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
我们举个例子:
root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户(可以通过/etc/passwd查看);;
[root@123455~]# ls -ldrwxr-xr-x 3 root root 4096 Jun 17 02:55 apktool类型,此用户的权限,用户组的权限,其他组用户的权限,此处显示的group为主group
每种权限与一个group id相对应(/system/etc/permissions/platform.xml)/data/system/packages.xml 中记录了系统的permissions,app的代码位置、签名、权限信息。下次启动直接从此文件读取信息,有app更新时修改保存此文件/data/system/packages.list 记录各app的pkgName, userid, debugFlag, datapath
uid: android安装应用时,会为它分配一个UIDgid:普通应用,GID等于UID,这个为主GIDgids:安装过程中如果application申请相应的permission被granted,对应permission的gid被加入到GIDS
changes in linux kernel, ( https://android.googlesource.com/kernel/common/+/android-3.10/net/ipv4/af_inet.c )![]()
https://groups.google.com/forum/#!topic/android-security-discuss/rd6C0ZzHAP0
ContextImpl::checkPermission() -> ActivityManagerNative.getDefault().checkPermissionWithToken()
->ActivityManagerServer.checkPermission()->AcvityManager.checkComponentPermission()
->PackageManagerService.checkUidPermission() //query from uid-permission mapping
install drozer_2.3.4 to C:\Program Files\drozercase: http://wenku.baidu.com/link?url=3fx-hf2VnRTyOBNvQr2MFgPfdQ-PzCZxDYy6lja1WvrixillqVIiFtbQz0fI-UkKraGrj8lLSL_mlCqMfT5xSV_xyoIJcB1BRdfeyRU-W6Cadb install agent.apk to devicestart drozer agent in deviceadb forward tcp:31415 tcp:31415C:\Program Files\drozer\drozer.bat console connectrun app.package.info -a mobi.suishi.reader