• 第四章:文件的访问权限


    文件的访问权限有9位  :  -xxx-xxx-xxx--

    从左到右分别是  ----文件所有者权限---文件所在组用户权限---其他用户权限----

    权限:xxx    三个位分别为  -读-写-执行- 

       当某位为1时,表示有权限,为0 时,则表示无权限

       例:-rwxr-xr-x 

        文件所有者权限为 : rwx (读  写  执行)

        文件所在组用户权限:r-x (读  执行)

        其他用户权限:r-x (执行)

    文件的权限存放在  struct stat 结构中 的 st_mode 字段中。

    可以用以下的的常量来测试用户的权限

    文件所有者  :S_IRUSR  S_IWUSR  S_IXUSR

    文件组所有者 :S_IRGRP  S_IWGRP  S_IXGRP

    其他用户   :S_IROTH  S_IWOTH  S_IXOTH

    对一个目录下的文件访问的时候,首先要对该目录具有相应的访问权限,然后

    才能访问目录下的文件。

    例如  : 访问  /usr/include/stdio.h  文件

          首先要对 usr  和  include 目录具有执行权限 , 然后对stdio.h具有访问权限

          这样才能访问stdio.h文件

    文件的权限可以用 chmod  命令 或 chmod() 函数更改

          例如:chmod  700  /usr/include/stdio.h

          这样  仅仅文件拥有者对该文件有 完全的访问权限 , 而其他用户对该文件无

          任何访问权限

    进程每次打开、创建  或 删除一个文件的时候,内核都会进行权限位的测试,这种测试

    可能涉及文件的所有者 、进程的有效ID 以及 进程的附加组ID

    测试步骤如下:

      1、如果用户ID 是0 , 则可以访问 (0 是超级用户的用户ID)

      2、如果进程的有效用户ID 等于 文件的所有者ID ,则允许以文件被设置的权限位访问,

        如果文件的权限位设置 不有允许用户 进行某些访问, 那么就拒绝

      3、如果进程的有效组ID 等于 文件的组ID , 则 测试  文件的组权限  。如果不允许访问则

        拒绝

      4、测试 文件 的其他文件权限位 ,

  • 相关阅读:
    查找链表中是否有环linked-list-cycle
    reverse-integer
    AVL树之 Java的实现
    single-number
    Best Time to Buy and Sell Stock II
    maximun-depth-of-binary-tree
    minimun-depth-of-binary-tree
    剑指offer--矩阵中的路径
    grep的几个参数
    fsck和badlocks
  • 原文地址:https://www.cnblogs.com/wowk/p/3108701.html
Copyright © 2020-2023  润新知