mode.h 文件
用途
定义对文件方式的解释。
描述
这个版本的操作系统支持 32 位模式,它分为 3 部分。 16 个最重要的位由系统保留。 最低有效的 16 位定义文件的类型 (_ IFMT) 和许可权位。 可以使用 Chmod 或 恰克勒 子例程来更改 12 个许可权位。 无法更改该文件类型。
文件类型分位
文件类型确定可以应用于该文件的操作 (包括隐式操作,例如搜索目录或跟随符号链接)。 文件类型是在创建文件时建立的,并且不能更改。 以下文件类型受支持:
| 项 | 描述 |
|---|---|
| _ IFDIR | 定义目录。 |
| _ IFREG | 定义常规文件。 |
| IFIFO | 定义管道。 |
| _ IFCHR | 定义字符设备。 |
| _ IFBLK | 定义块设备。 |
| _ IFLNK | 定义符号链接。 |
| _ IFSOCK | 定义套接字。 |
可以使用 _ IFMT 格式掩码常量来屏蔽方式中的文件类型。
文件-属性位
文件属性位会影响对特定文件的解释。 在存在一些限制的情况下,文件属性可以由文件的所有者或特权用户更改。 文件属性位如下所示:
| 项 | 描述 |
|---|---|
| 属性 | 描述 |
S_ISUID 位
| 项 | 描述 |
|---|---|
| setuid | 当某个进程运行设置了 ISUID 位的常规文件时,该进程的有效用户标识将设置为该文件的所有者标识。 设置标识 属性仅可由可信路径上的进程设置。 如果文件或其访问许可权发生更改,那么会清除 ISUID 位。 |
S_ISGID (S_ENFMT) 位
| 项 | 描述 |
|---|---|
| setgid | 当某个进程运行同时设置了 _ISGID 位和 _IXGRP 许可权位的常规文件时,该进程的有效用户标识将设置为该文件的组标识。 设置标识 属性仅可由可信路径上的进程设置。 如果所有者正在建立此属性,那么文件的组必须是有效组标识或在进程的补充组标识中。 如果文件或其访问许可权发生更改,那么会清除 _ISGID 位。 |
| 强制锁定 | 如果常规文件设置了 _ISGID 位,并且清除了 _IXGRP 许可权位,那么使用 洛克菲克斯 子例程在文件上放置的锁定将强制锁定。 |
S_IFMPX 位
| 项 | 描述 |
|---|---|
| 复用 | 具有 _ IFMPX 属性位集的字符设备是一个多路复用设备。 此属性是在创建设备时建立的。 |
S_ISVTX 位
| 项 | 描述 |
|---|---|
| 固定 | 如果某个目录设置了 SVTX 位,那么只有该文件的所有者或该目录的所有者才能从该目录中移除文件。 |
S_IXACL 位
| 项 | 描述 |
|---|---|
| 访问控制表 | 任何设置了 _IXACL 位的文件都可以具有扩展访问控制表 (ACL)。 使用 Chmod 命令设置方式时指定此位将导致该方式中的许可权位信息被忽略。 如果清除了此位,那么将忽略扩展 ACL 条目。 此位可以由 Chmod 子例程隐式清除。 /usr/include/sys/acl.h 文件定义 ACL 的格式。 |
S_ITCB 位
| 项 | 描述 |
|---|---|
| 可信 | 任何设置了 _ ITCB 位的文件都是可信计算库 (TCB) 的一部分。 只有 TCB 中的文件才能获取对可信路径的特权。 只有 TCB 中的文件才会由可信 shell 运行 (使用 特什 命令调用)。 仅当进程在可信路径上运行时,才能建立或清除此属性。 |
S_IJRNL 位
| 项 | 描述 |
|---|---|
| 已记入日志 | 任何设置了 _IJRNL 位的文件都将定义为日志文件。 对日志文件的更新将自动添加到日志中。 所有目录和系统文件都具有记入日志的属性,无法重置该属性。 |
S_ICRYPTO 位
| 项 | 描述 |
|---|---|
| 已加密 | 设置了 S_ICRYPTO 位的任何文件都是加密文件系统 (EFS) 中的加密文件。 |
文件-许可权位
文件许可权位用于控制哪些进程可以对文件执行操作。 这包括针对文件所有者,文件组和缺省值的读,写和执行位。 不应该使用这些位来设置访问控制信息; 应该改为使用 ACL。 文件许可权位如下所示:
| 项 | 描述 |
|---|---|
| _IRWXU | 允许文件的所有者读,写和执行该文件。 |
| _IRUSR | 允许某个文件的所有者读取该文件。 |
| 读取数 | 允许某个文件的所有者读取该文件。 |
| (_IWUSR) | 允许文件的所有者写至文件。 |
| 写 (_I) | 允许文件的所有者写至文件。 |
| (_IXUSR) | 允许文件的所有者执行该文件或搜索该文件的目录。 |
| _IEXEC | 允许文件的所有者执行该文件或搜索该文件的目录。 |
| IRWXG | 允许文件的组读取,写入和执行该文件。 |
| _ IRGRP | 允许一个文件的组读取该文件。 |
| (_I) | 允许将文件的组写入文件。 |
| _IXGRP | 允许文件的组执行该文件或搜索该文件的目录。 |
| IRWXO | 允许其他用户读取,写入和执行该文件。 |
| _IROTH | 允许其他人读取该文件。 |
| 工单工单 | 允许其他用户写入该文件。 |
| _IXOTH | 允许其他用户执行该文件或搜索该文件的目录。 |