Sets the effective, minimum, and maximum sensitivity labels and the effective, minimum, and maximum integrity labels of a process.
Standard C library (libc.a)
#include <sys/mac.h>
#include <sys/secconf.h>
int sec_setplab (pid, eff_sl, mincl, maxcl, eff_tl, min_tl_cl, max_tl_cl)
pid_t pid;
sl_t *eff_sl;
sl_t *mincl;
tl_t *maxcl;
tl_t *eff_tl;
tl_t *min_tl_cl;
tl_t *max_tl_cl;
The sec_setplab subroutine sets the effective, minimum, and maximum sensitivity labels and the effective, minimum, and maximum integrity labels of the process that is specified by the pid parameter.
If the value of the pid parameter is negative, the parameters of the calling process are modified.
The calling process and the process being modified must have the same real user ID or the same effective user ID. Or the calling process must have the PV_DAC_O to bypass the user ID restriction.
Effective and Clearance Sensitivity Label
The calling process must have the PV_LAB_SL_SELF privilege to modify its own sensitivity label. The calling process must have the PV_LAB_SL_PROC privilege to modify the sensitivity label of another process.
The effective sensitivity label of the calling process must equal the effective sensitivity label of the target process, or the calling process must have the PV_MAC_W_PROC privilege.
The eff_sl, mincl and maxcl parameters point to the effective, minimum, and maximum sensitivity labels. The maximum sensitivity label must dominate the effective sensitivity label, and the effective sensitivity label must dominate the minimum sensitivity label, if all three labels are specified. If the values of one or more sensitivity label parameters are NULL, the corresponding sensitivity label of the target process is substituted, and the dominance relationship must still be valid. The effective sensitivity label must dominate the current information label of the process being modified. If the effective sensitivity label has a value of NULL, the maximum sensitivity label must dominate the current effective sensitivity label of the process that is specified by the pid parameter.
If the effective, minimum, or maximum sensitivity label is outside of the clearance of the calling process, the process must have the PV_MAC_CL privilege.
If the effective, minimum, or maximum sensitivity label results in the corresponding label of the process that is specified by the pid parameter being downgraded or upgraded, the process must have the PV_LAB_SL_DG or PV_LAB_SL_UG privilege.
If the mincl or maxcl parameter is specified, the calling process must have the PV_LAB_CL privilege.
Integrity Label
The PV_LAB_TL privilege is required for a process to set subject or object integrity labels.
The eff_tl, min_tl_cl and max_tl_cl parameters point to the effective, minimum, and maximum integrity labels. The maximum integrity label must dominate the effective integrity label, and the effective integrity label must dominate the minimum integrity label, if all three labels are specified. If the values of one or more integrity label parameters are NULL, the corresponding integrity label of the target process is substituted, and the dominance relationship must still be valid. If the effective integrity label has a value of NULL, the maximum sensitivity label must dominate the current effective integrity label of the process that is specified by the pid parameter. If the effective, minimum, or maximum integrity label is outside of the clearance of the calling process, or if the effective integrity label is NOTL; the process must have the PV_MIC_CL privilege.
Neither the min_tl_cl nor max_tl_cl parameter is allowed to be NOTL. If the min_tl_cl or max_tl_cl parameter is specified, the calling process must have the PV_LAB_CL_TL privilege.
Item | Description |
---|---|
pid | Specifies the process whose security labels are set. |
eff_sl | Points to the effective sensitivity label. |
mincl | Points to the minimum sensitivity label. |
maxcl | Points to the maximum sensitivity label. |
eff_tl | Points to the effective integrity label. |
min_tl_cl | Points to the minimum integrity label. |
max_tl_cl | Points to maximum integrity label. |
Item | Description |
---|---|
0 | Successful |
-1 | Unsuccessful |
Item | Description |
---|---|
EINVAL | The values of of all labels arguments that are passed are NULL |
ESRCH | No process has a process ID equal to the value of the pid parameter. |
EPERM | The calling process does not have permissions or privileges. |
EFAULT | The address that a label argument points to is not valid. |