aclx_convert 子例程
用途
将访问控制信息从一种 ACL 类型转换为另一种 ACL 类型。
库
安全性库 (libc.a)
语法
描述
aclx_convert 子例程将访问控制信息从 ACL 类型 from_type 的 from_acl 中给出的二进制输入转换为类型为 to_type 的二进制 ACL ,并将其存储在 to_acl中。 值 from_type 和 to_type 可以是系统中支持的任何 ACL 类型。
ACL 转换是在特定于 ACL 类型的算法的帮助下进行的。 因为转换是近似的,会导致访问控制的潜在损失。 因此,此调用的用户必须确保转换后的 ACL 满足所需的访问控制。 用户可以在转换后手动查看文件系统对象的访问控制信息,以确保转换成功并满足预期访问控制的要求。
参数
| 项 | 描述 |
|---|---|
| from_acl | 指向必须转换的 ACL。 |
| 从 | 指示 from_acl指向的 ACL 信息的大小。 |
| from_type | 指示 ACL 的 ACL 类型信息。 acl_type 的大小为 64 位,在系统上是唯一的。 如果系统中不支持给定的 acl_type ,那么此函数将失败,并且 errno 将设置为 EINVAL。 受支持的 ACL 类型为 ACLX 和 NFS4。 |
| 至 | 指向必须在其中存储目标二进制 ACL 的缓冲区。 此缓冲区中可用的内存量由 to_sz 参数指示。 |
| to_sz | 指示 to_acl中可用的内存量 (以字节计)。 如果 to_sz 包含的内存量小于存储转换后的 ACL 所需的内存量,那么 * to_sz 将设置为所需的内存量,并且 ENOSPC 由 errno返回。 |
| to_type | 指示需要对其进行转换的 ACL 类型。 ACL 类型的大小为 64 位,在系统上是唯一的。 如果系统中不支持给定的 acl_type ,那么此函数将失败,并且 errno 将设置为 EINVAL 受支持的 ACL 类型为 ACLX 和 NFS4。 |
| fs_obj_path | 要为其请求 ACL 转换的文件系统对象路径。 获取有关对象的信息,例如该对象是文件还是目录。 |
返回值
成功完成时, aclx_convert 子例程返回值 0。 否则,将返回-1并设置errno全局变量来指示错误。
错误代码
如果下列其中一个或多个为 true ,那么 aclx_convert 子例程将失败:
| 项 | 描述 |
|---|---|
| EINVAL | 输入参数无效。 如果在 from_type 或 to_type中指定了无效的 acl_type 作为此例程的输入,那么会返回相同的错误。 如果 from_acl 中提供的二进制 ACL 不是 from_type指定的类型,那么也可能返回此 errno 。 |
| ENOSPC | to_acl中没有足够的存储空间可用。 |
安全性
访问控制: 调用者必须具有 Path 前缀的所有组件的搜索许可权。
审计事件: 如果审计子系统已正确配置并且已启用,那么 aclx_convert 子例程将在每次执行命令时生成以下审计记录 (事件):
| 项 | 描述 |
|---|---|
| 事件 | 信息 |
| FILE_Acl | 列出访问控制。 |