2019-09-14
::
Marco Epsilon
#system
#file
Overview
目录(Directory)主要用于将磁盘中的文件分级表示,而文件则用于在磁盘中存储数据,且目录与文件的组合,使得数据有组织,而不产生混乱
File Type
大多数系统都会将文件按如下方式分类:
类型
|
描述
|
目录文件
|
包含了有关文件的名字和信息指针
|
普通文件
|
普通文件主要分为文本文件和二进制文件(二者对于内核来说并无区别)
|
块设备
|
提供对设备带缓冲读取(如磁盘),每次访问都以固定长度进行
|
字符设备
|
对设备无缓冲读取,每次访问长度可变
|
FIFO命名管道
|
用于进程间通信
|
套接字(socket)
|
用于网络通信
|
符号链接
|
一种指向另一个文件的文件
|
File Access Permisson
对于Unix,File Permisson主要有9位,分为三组(用户权限,组权限,其他权限),每组权限有三位(可读(r),可写(w),可执行(x)),无权限会用
-
表示
若文件需能被读取,需要其父级路径所有目录可读且可执行,若目录只可读,那么只能读取目录表项名字,而不能读取有关信息,若需读取,需要执行可执行位
Permisson Mode
文件通常需要进程来进行创建,读写,删除等操作,所以我们需要了解一下和进程有关的ID,对文件操作的影响
Type
|
Description
|
实际用户ID
|
执行者用户ID
|
实际组用户ID
|
执行者组ID
|
有效用户ID
|
通常与实际用户ID相等,用于文件访问权限检查
|
有效用户组ID
|
通常与实际组ID相等,用于文件访问权限检查
|
保存用户ID
|
由exec保存
|
保存组ID
|
由exec保存
|
其中最重要的是有效用户ID,有效组用户ID,它们决定了文件的访问权限,如果可执行文件打开了设置用户ID或设置组用户ID,那么执行时有效用户ID或有效组ID等于文件所有者用户ID或文件所有者组ID