proc_rbac_op 子例程

用途

设置,取消设置和查询进程的 RBAC 属性。

标准 C 库 (libc.a)

语法

#include <sys/cred.h>
#include <sys/types.h>

int proc_rbac_op (Pid,Cmd, Param)
pid_t Pid
int Cmd
int *Param

描述

proc_rbac_op 子例程用于设置,取消设置和查询进程的 基于角色的访问控制 (RBAC) 感知。

要使用 proc_rbac_op 子例程,调用进程必须具有 ACT_P_SET_PAGRBAC 特权。 如果在可信AIX®环境中运行,调用进程必须具有适当的标签属性,才能对Pid参数指定的目标进程执行操作。

参数

描述
命令 指定要在目标进程上运行的命令。 Cmd 参数具有以下值:
PROC_RBAC_SET
设置在目标进程的 Param 参数中指定的标志。
PROC_RBAC_UNSET
清除在目标进程的 Param 参数中指定的标志。
PROC_RBAC_GET
返回与 SEC_NOEXEC , SEC_RBACAWARE 和 SEC_PRIVCMD 相关的进程安全标志的状态。
Pid 指定目标进程的 Pid。 负的 Pid 值表示当前进程。
参数 此参数依赖于 Cmd 参数指定的命令。

PROC_RBAC_SETPROC_RBAC_UNSET: 只能是 SEC_NOEXEC 或 SEC_RBACAWARE。 只能为一个调用指定一个标志。

PROC_RBAC_GET: 返回时,保存 SEC_NOEXEC , SEC_RBACAWARE 和 SEC_PRIVCMD 的状态。

返回值

成功完成时, proc_rbac_op 子例程返回零值。 如果子例程失败,它将返回值 1 ,并且将设置 errno

错误代码

如果下列其中一个值为 true ,那么 proc_rbac_op 子例程将失败:

描述
EINVAL 提供了无效的 Cmd 值,或者使用 PROC_RBAC_GET 命令为 Status 参数提供了 NULL 指针。
ESRCH pid 值与有效进程不对应。
EPERM 调用进程没有相应的 RBAC 特权。 或者,如果启用了可信AIX,调用进程没有适当的标签信息。
Efault Param 缓冲区的复制操作失败。
ENOSYS 系统未在增强的 RBAC 方式下运行。