访问控制表访问权限

信息资源的所有者负责管理访问权。 资源受包含在对象方式中的许可权位的保护。

对于 AIXC ACL ,许可权位定义授予对象所有者,对象组以及 others 缺省类的访问许可权。 AIXC ACL 类型支持三种可单独授予的不同访问方式 (读,写和执行)。

当用户登录到帐户 (使用 loginsu 命令) 时,分配给该帐户的用户标识和组标识将与用户的进程相关联。 这些标识确定进程的访问权。

对于具有相关AIX®ACL 的文件、目录、命名管道和设备(特殊文件),访问授权如下:
  • 对于访问控制表 (ACL) 中的每个访问控制条目 (ACE),标识列表与进程的标识进行比较。 如果有匹配,那么进程接收为该条目定义的许可权和限制。 将为 ACL 中每个匹配的条目计算许可权和限制的逻辑联合。 如果请求进程不匹配 ACL 中的任何条目,那么它接收缺省条目的许可权和限制。
  • 如果请求的访问方式是允许的(包含在许可权的联合中)并且不受限制(包含在限制的联合中),那么授权访问。 否则,拒绝访问。
此外,对于 AIXC ACL 类型,如果列表中的所有标识都与请求进程的相应有效标识类型匹配,那么 ACL 的标识列表将与该进程匹配。 匹配的 USER 类型标识等于进程的有效用户标识,并且如果 GROUP 类型标识等于进程的有效组标识或增补组标识之一,那么匹配。 例如,一个有标识列表的 ACE 如下所示:
USER:fred, GROUP:philosophers, GROUP:software_programmer
它将匹配具有 fred 有效用户标识和以下组集的进程:
philosophers, philanthropists, software_programmer, doc_design
但不匹配具有 fred 有效用户标识和以下组集的进程:
philosophers, iconoclasts, hardware_developer, graphic_design
请注意,有以下项的标识列表的 ACE 将同时匹配两个进程:
USER:fred, GROUP:philosophers

换言之,ACE 函数中的标识列表是一组必须为将授权的指定访问保持的条件。

任意访问控制机制允许信息资源的有效访问控制,并提供信息的机密性和完整性的单独保护。 所有者控制的访问控制机制仅在用户采用时才有效。 所有用户必须知道如何授权和拒绝访问许可权,以及如何设置它们。

请注意,对于带有相关联的 NFS4 ACL 类型的文件系统对象,访问检查是基于各种 ACE 的,这些 ACE 按照 NFS V4 协议相关的 RFC 中设置的规则构成 ACL。 标识匹配基于 ACE 中针对进程凭证而定义的用户标识或组标识或特殊 who 字符串来实现。 如果出现匹配,那么对照在 ACE 中定义的访问权检查请求的访问权。 如果允许所有的访问权,那么将取出这些访问权并且比较操作将继续执行到下一个 ACE。 该进程会继续执行,一直到达到 ACL 末尾或满足所有访问权为止,或者如果所有请求的访问权遭到拒绝为止。 以下步骤针对带有相关联的 NFS4 ACL 的文件系统对象来捕获访问检查:
  1. 对于访问控制表 (ACL) 中的每个访问控制条目 (ACE),标识列表与进程的标识进行比较。 标识检查包括 ACE 中定义的用户标识或组标识。 此外,如果使用诸如 OWNER@之类的字符串将身份定义为 special ,那么当调用进程由文件的所有者执行时,将发生匹配。 如果存在匹配,那么 进程将接收为该条目定义的访问权。 否则,继续到下一个 ACE。
  2. 将请求的访问权与从 ACE 条目检索的访问权作比较。 如果 ACE 显式拒绝了所有请求的访问权,那么访问检查进程将终止并且请求进程将拒绝访问。
  3. 如果 ACE 满足某些请求的访问权,那么从请求访问权列表中取出这些访问权并且比较操作将继续到下一个 ACE。
  4. 如果 ACE 满足所有请求的访问权,那么允许请求的访问。
  5. 如果在解析所有请求的访问权之前到达了 ACL 末尾,那么将拒绝访问。

注意:除了基于 ACL 类型的访问检查之外,个别的物理文件系统也可以选择提供对文件系统对象的基于特权的访问。 例如,所有者可以始终至少拥有修改 ACL 的许可权,而与现有的 ACL 访问权无关。 用户标识为 0 的进程称为 root 用户进程。 通常,允许这些进程具有所有访问许可权。 但是,如果 root 用户进程请求程序的执行许可权,那么只有在对至少一名用户授予执行许可权的情况下,才授权访问。

当第一次访问对象时,在系统调用级别对这些对象进行所有访问许可权检查。 由于 System V 进程间通信 (SVIPC) 对象是无状态访问的,所以对每次访问进行检查。 但是,物理文件系统可能在文件系统对象打开时进行检查而不是在读或写操作时进行检查。 对于具有文件系统名称的对象,必需能解析实际对象的名称。 名称可相对(相对于进程的工作目录)解析或绝对(进程的根目录)解析。 所有名称解析通过搜索这些中的一个开始。