所有文件类型都有访问权限。对于st_mode值也包含了对文件的访问权限位。
每个文件有9个访问权限,可将它们分为3类。
st_mode屏蔽 | 含义 |
S_IRUSR | 用户读 |
S_IWUSR | 用户写 |
S_IXUSR | 用户执行 |
S_IRGRP | 组读 |
S_IWGRP | 组写 |
S_IXGRP | 组执行 |
S_IROTH | 其他读 |
S_IWOTH | 其他写 |
S_IXOTH | 其他执行 |
对以上的3中不同权限以各种方式由不同的函数使用。
1. 我们用名字打开任一类的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前工作目录都应具有执行权限。这就是为什么对于目录其执行权限位常被称为收索为的原因。
2. 对于一个文件的读权限决定了我们是否能够打开现有文件进行读操作。这与open函数的O_RDONLY和O_RDWR标识有关。
3. 对于一个文件的写权限决定了我们是否能够打开现有文件进行写操作。这又open函数的O_WRONLY和O_RDWR标志有关。
4. 为了在open函数中对一个文件指定O_TRUNC标志,必须对该文件具有写权限。
5. 为了删除一个现有文件,必须对包含该文件的目录具有写权限和执行权限,对该文件本身则不需要有读、写权限。
6. 如果用7个exec函数中的任何一个执行某个文件,都必须对该文件具有执行权限。该文件还必须是一个普通文件。