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 设置的控制以及接口中任何将来的变体。 已经定义了以下标志值:
注: 上述两个值都可以由调用者通过对两个掩码进行 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 的特定物理文件系统实现。