vnop_setxacl 入口点

用途

为一个文件系统对象设置访问控制表 (ACL)。 与 vnop_setacl 相比,这是一个高级界面,并提供基于 ACL 类型的操作。

语法

#include <sys/acl.h> 
int vnop_setxacl (vp, ctl_flags, acl_type, uiop, mode_info, crp) 

struct vnode   *vp; 
uint64_t       ctl_flags; 
acl_type_t     acl_type; 
struct uio     *uiop; 
mode_t          mode_info; 
struct ucred   *crp; 

描述

vnop_setxacl 入口点用于设置文件上的访问控制表 (ACL)。 它是 vnop_setacl 接口的高级版本,并提供了基于 ACL 类型的操作。 此接口还可用于管理方式字中的特殊位 (例如, SUID , SGID 和 SVTX) ,以防 ACL 类型不支持通过 ACL 的这些位。

参数

描述
VP 指定需要对其设置 ACL 的文件系统对象的虚拟节点 (v-node)。
acl_type 指定 ACL 信息的 ACL 类型,需要为文件系统对象设置该信息。
注: 如果底层的物理文件系统不支持所请求的 ACL 类型,那么系统可能会返回错误。
阿克伦 指向 长度 变量的指针。 所指向的空间用作输入,以及输出,参数。 作为输入,该值将指示缓冲区 乌约普的大小。 当调用返回时,此空间保留 ACL 的实际长度 (对于调用成功或调用失败且 错误号 设置为 ENOSPC的情况,为 true)。
ctl_flags 此 64 位位掩码提供了对 ACL 设置的控制以及接口中任何将来的变体。 已经定义了以下标志值:
SET_MODE_S_BITS
指示 mode_info 值由调用者设置,并且 ACL put 操作必须考虑该值才能完成 ACL put 操作。
SET_ACL
指示 ACL 参数指向在执行 ACL 放置操作时必须考虑的有效 ACL 数据。
注: 上述两个值都可以由调用者通过对两个掩码进行 OR 运算来指定。
乌约普 指定 乌约 结构,该结构定义调用参数的存储器。
mode_info 此值指示作为此 ACL put 操作的一部分,需要为文件系统对象设置的任何方式字信息。 通过指定 SET_MODE_S_BITS 标志 (在 ctl_flags中) 来更改方式位时,如果调用者没有必需的特权,那么整个 ACL put 操作将失败。
茨尔普 点至 克雷德 结构。 此结构包含文件系统可用来验证访问许可权的数据。

执行环境

vnop_setxacl 入口点只能从流程环境中调用。

返回值

成功完成后, vnop_setxacl 入口点将返回 0。 从 /usr/include/sys/errno.h 文件返回非零返回值以指示失败。

描述
EPERM 指示未授权该进程的有效用户标识更改指定文件系统对象上的 ACL。
EINVAL 操作无效。 文件系统可能不支持正在设置的 ACL 类型。
注: 此错误号列表不完整,它取决于支持 ACL 的特定物理文件系统实现。