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