系统结构
本节学习iOS设备的系统结构,在登录设备输入uname -a
命令可以查看系统信息:
root# uname -a
// 输出
Darwin iPad 15.0.0 Darwin Kernel Version 15.0.0: Wed Dec 9 22:19:38 PST 2015; root:xnu-3248.31.3~2/RELEASE_ARM64_S5L8960X iPad4,5 arm64 J86AP Darwin
iOS系统是基于Darwin Kernel
的,是一种UNIX-like
系统。在正向开发中只能访问到沙盒中的Documents
、Library
、Temp
等文件。通过越狱可以访问整个iOS文件系统。
文件目录
上一节中安装了两款软件,Mac平台的iFunBox
和iOS平台Apple File Conduit 2
。电脑连接iOS设备打开 iFunBox
,在左侧的导航栏选择文件系统
。如下图:
-
Applications
:存放所有的系统App和来自Cydia
的App,不包括从App Store
下载的APP。 -
Developer
:供开发者使用。 -
Library
: 系统资源,用户设置。 -
System
: 系统的重要组成部分。其中,/Library/Carrier Bundles
里面是运行商的一些配置。/Library/Frameworks
和/Library/PrivateFrameworks
里面存放着系统公开和未公开的Framework
。 -
User
: 用户目录,实际指向/var/mobile
,使用mobile
账号登录系统$HOME也是这个目录。 -
bin
: 存放用户级二进制文件,例如:mv,ls等。 -
dev
: 设备文件。 -
etc
: 存放系统脚本、hosts配置、SSH配置文件等,实际指向private/etc/
. -
sbin
: 存放系统级二进制文件,例如:reboot、mount等。 -
usr
:用户工具和程序。 -
var
: 一些经常改动的文件,包括keychains
、临时文件、包括从APP Store下载的文件。
文件的读写权限
文件权限是UNIX
系统确保安全操作的重要部分。由于iOS系统是基于UNIX
的,所以同样适用。
首先来看三个属性:
- 所有者权限:决定文件所有者可以对文件的操作。
- 组权限:决定属于该组的成员对他拥有的文件能够进行的操作。
- 其他人权限:表示其他人能够对文件进行的操作。
远程登录iOS设备:
root# cd /
root# ls -l
// 输出结果:
//...
drwxr-xr-x 4 root wheel 136 Oct 9 2015 private
drwxr-xr-x 2 root wheel 612 Sep 14 19:37 sbin
lrwxr-xr-x 1 root admin 15 Sep 19 2015 tmp -> private/var/tmp
drwxr-xr-x 11 root wheel 374 Sep 14 19:37 usr
lrwxr-xr-x 1 root admin 11 Sep 19 2015 var -> private/var
若有一个文件的类型与权限数据为『lrwxr-xr-x』,请说明其意义为何?
先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:
[l][rwx][r-x][r-x]
1 234 567 890
1 为:文件类型,普通文件(-),符号链接文件(l),文件夹(d)。
234为:拥有者的权限,本例中为可读、可写、可执行(rwx);
567为:同群组用户权限,本例中为可读可执行(rx);
890为:其他用户权限,本例中为可读(r)
同时注意到,rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-)就是了。
文件权限用3个比特表示文件的操作权限,从高到低位分别是读r,写w,执行x。rwx
三个比特为转换成二进制111
,可以用4代表读权限,2代表写权限,1代表执行权限。转成十进制为7
。
如果想要更改文件权限,可以使用chmod
命令。
chmod 755 xxx
// 7:文件所有者权限读写执行,5:组权限和其他人权限为读与执行
小结
以上是iOS文件系统的相关内容,如果了解UNIX
系统这些是最基本的内容。推荐《鸟哥的Linux私房菜》
网友评论