|Skip Navigation Links|
|Exit Print View|
|man pages section 2: System Calls Oracle Solaris 11.1 Information Library|
- get or set process flags
#include <sys/types.h> #include <priv.h> uint_t getpflags(uint_t flag);
int setpflags(uint_t flag, uint_t value);
The getpflags() and setpflags() functions obtain and modify the current per-process flags.
The following values for flag are supported:
This one bit flag takes the value of 0 (unset) or 1 (set). Only if this flag is set is the current process privilege-aware. A process can attempt to unset this flag but might fail silently if the observed set invariance condition cannot be met. Setting this flag is always successful. See privileges(5) for a discussion of this flag.
This one bit flag takes the value of 0 (unset) or 1 (set). This causes a process to pretend it is non- privilege aware. The effective and permitted privilege set change on the change of the effective uid. When all the uid sets become the same through setuid(uid) or through setreuid(uid, uid), the effective and permitted set are set to the intersection between the limit set and the inheritable set. At that point, both PRIV_AWARE and PRIV_AWARE_RESET are unset.
This flag gets automatically reset when a file becomes privilege aware, either through calling setppriv(2) or by setting PRIV_AWARE to 1.
This one bit flag takes the value of 0 (unset) or 1 (set). Only if this flag is set does the current process have privilege debugging enabled. Processes can set and unset this flag at will.
This one-bit flag takes the value of 0 (unset) or 1 (set). Only if this flag is set is the current process a profile shell. Every time exec(2) is called, the exec_attr(4) database for the current user's profiles database is queried and the appropriate attributes are applied to the new program. PRIV_PFEXEC is inherited except when the real UID is changed as a result of the applied attributes.
This one-bit flag takes the value of 0 (unset) or 1 (set). Only if this flag is set does the current process honor its Extended Policy (see privileges(5)).
These flags are available only if the system is configured with Trusted Extensions. These one bit flags each take the value of 0 (unset) or 1 (set). If the NET_MAC_AWARE flag is set then the current process is allowed to communicate with peers at labels that are different than its own, subject to MAC policy.
The NET_MAC_AWARE_INHERIT flag controls the propagation of the NET_MAC_AWARE flag. When a process performs one of the exec(2) functions, the NET_MAC_AWARE flag is unset unless the NET_MAC_AWARE_INHERIT is set. NET_MAC_AWARE_INHERIT is always unset on one of the exec functions. The PRIV_NET_MAC_AWARE privilege is required to set either of these flags.
The getpflags() returns the value associated with a given per-process flag. If the flag argument is invalid, (uint_t)-1 is returned and errno is set to indicate the error.
Upon successful completion, setpflags() returns 0. Otherwise, -1 is returned and errno is set to indicate the error.
The getpflags() and setpflags() functions will fail if:
The value of flag or the value to which the flag is set is out of range.
The setpflags() function will fail if:
An attempt was made to unset PRIV_AWARE but the observed set invariance condition was not met.
See attributes(5) for descriptions of the following attributes: