procpriv(2)


procpriv -- add, retrieve, remove, count, or put privileges associated with the calling process

Synopsis

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

int procpriv(int cmd, priv_t *privp, int nentries);

Description

The procpriv system call is used to add, remove, retrieve, count, or put the privileges associated with the calling process. privp is a pointer to an array of privilege descriptors, each of which contains the privilege set and identity of the requested privilege. nentries is the number of entries contained in privp.

The recognized cmds and their functions are described below:


SETPRV
Set the working privilege set for the current process based on the privilege descriptor(s) contained in privp. All requested privileges not contained in the current maximum privilege set are ignored. All requested working privileges that are in the current maximum set are added to the working set. If any argument is invalid, none of the process privileges is changed.

CLRPRV
Clear the working and maximum privilege sets for the current process based on the privilege descriptor(s) contained in privp. All requested privileges are removed from their respective sets. The working set is adjusted to be a subset of the resulting maximum set. If any argument is invalid, none of the process privileges is changed.

PUTPRV
Set the working and maximum privilege sets for the current process based on the privilege descriptor(s) contained in privp. The setting is absolute. The working set is adjusted to be a subset of the resulting maximum set. Privileges contained in either privilege set that are not in the maximum set of the calling process are ignored. If any argument is invalid, none of the process privileges is changed.

GETPRV
Return in privp the working and maximum privilege sets for the current process in the form of privilege descriptors. None of the process privileges is changed.

CNTPRV
Return the number of privileges associated with the current process. The privp and nentries arguments are ignored. None of the process privileges is changed.

Return values

On success, procpriv returns the number of privileges associated with the current process (SETPRV, CLRPRV, PUTPRV, GETPRV, CNTPRV). On failure, procpriv returns -1 and sets errno to identify the error.

Errors

In the following conditions, procpriv fails and sets errno to:

EINVAL
cmd or privilege specified is invalid, or nentries is less than 0, or cmd is GETPRV and the process privileges exceeds nentries.

References

intro(2), filepriv(2), procprivl(3C), priv(5), privilege(5)

Notices

Considerations for threads programming

Privileges are attributes of the containing process and are shared by sibling threads.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004