st_mode值也包含了对文件的访问权限位。所有文件类型都有访问权限(access permission)。
st_mode屏蔽 | 含义 |
---|---|
S_IRUSR S_IWUSR S_IXUSR | 用户读 用户写 用户执行 |
S_IRGRP S_IWGRP S_IXGRP | 组写 组读 组执行 |
S_IROTH S_IWOTH S_IXOTH | 其他读 其他写 其他执行 |
chmod(1)命令用于修改这九个权限为,该命令允许我们用u表示用户(所有者),用g表示组,用o表示其他。
对于目录的读权限和执行权限的意义是不相同的。读权限 允许我们读目录,获得在该目录中所有文件名的列表。当一个目录是我们要访问文件的路径名的一个组成部分是,对该目录的执行权限使我们可以通过该目录(也就是搜索该目录,寻找一个特定的文件名)。
为了在一个目录中创建一个新文件,必须对该目录具有写权限和执行权限。
为了在一个目录中删除一个新文件,必须对该目录具有写权限和执行权限。但是对该文件本身不需要有读、写权限。
进程每次打开、创建或者删除一个文件时,内核就进行文件访问权限测试。
如果进程希望按其实际用户ID和实际组ID来测试其访问能力,可使用access和faccessat