Unix 文件和目录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a740169405/article/details/80118507

用户ID和组ID

类别 含义
实际用户ID / 实际组ID 我们实际上是谁(登录时确定)
有效用户ID / 有效组ID 用于文件访问权限检查(可以被更改,比如改成超级管理员,那就无敌了)
保存的设置用户ID / 保存的设置组ID 由exec函数保存(保存了有效xxID的副本)

有效用户ID和有效组ID是用来做文件监测的,一般进程的有效用户ID和有效组ID和实际用户ID和实际组ID是一样的,当然这个是可被修改的。

stat方法

stat方法可以查看文件或者目录的信息,具体能查看哪些信息,可以看stat这个结构体

文件的访问权限R/W/X

文件访问权限,对应在stat结构体里的st_mode字段,对应九个访问位权限

st_mode 含义
S_IRUSR / S_IWUSR / S_IXUSR 用户读 / 用户写 / 用户执行
S_IRGRP / S_IWGRP / S_IXGRP 组读 / 组写 / 组执行
S_IROTH / S_IWOTH / S_IXOTH 其他读 / 其他写 / 其他执行

记住以下规律:

  1. 对某一个文件/目录的访问,需要对其所有父目录有执行权限
  2. 读一个文件时,必须对该文件有读权限
  3. 写文件时,必须对该文件有写权限
  4. 在一个目录下新增文件时,必须对该目录有写权限和执行权限
  5. 删除一个目录下的文件时,必须有该目录有写和执行权限,对该文件不需要任何权限

判断是否有权限是通过当前进程的有效ID和文件的所有者ID来判断的。

文件权限校验

通过access或者faccessat方法可以查看文件/文件夹的访问权限。

猜你喜欢

转载自blog.csdn.net/a740169405/article/details/80118507