1 .\"
   2 .\" This file and its contents are supplied under the terms of the
   3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
   4 .\" You may only use this file in accordance with the terms of version
   5 .\" 1.0 of the CDDL.
   6 .\"
   7 .\" A full copy of the text of the CDDL should have accompanied this
   8 .\" source.  A copy of the CDDL is also available via the Internet at
   9 .\" http://www.illumos.org/license/CDDL.
  10 .\"
  11 .\"
  12 .\" Copyright 2015 Joyent, Inc.
  13 .\"
  14 .Dd May 11, 2016
  15 .Dt PSETPRIV 3PROC
  16 .Os
  17 .Sh NAME
  18 .Nm Psetpriv
  19 .Nd set process privileges
  20 .Sh LIBRARY
  21 .Lb libproc
  22 .Sh SYNOPSIS
  23 .In libproc.h
  24 .Ft int
  25 .Fo Psetpriv
  26 .Fa "struct ps_prochandle *P"
  27 .Fa "prpriv_t *pprv"
  28 .Fc
  29 .Sh DESCRIPTION
  30 The
  31 .Fn Psetpriv
  32 function updates the privileges of the process handle
  33 .Fa P
  34 to the set described by
  35 .Fa pprv .
  36 The updated privilege set has restrictions on what it may change for a
  37 process which are documented in the
  38 .Sy PCSPRIV
  39 section of
  40 .Xr proc 4 .
  41 In addition, the definition of the
  42 .Sy prpriv_t
  43 structure is described in
  44 .Xr proc 4 .
  45 .Pp
  46 The current privilege set for the process may be obtained through a call
  47 to
  48 .Xr Ppriv 3PROC .
  49 .Pp
  50 Note, the privilege set may only be updated for active processes.
  51 Process handles which correspond to core files, zombie processes, and
  52 files, may not have their privilege sets updated.
  53 .Sh RETURN VALUES
  54 Upon successful completion, the
  55 .Fn Psetpriv
  56 function returns
  57 .Sy 0
  58 and updates the privilege sets of the process.
  59 Otherwise,
  60 .Sy -1
  61 is returned and
  62 .Sy errno
  63 is set to indicate the error.
  64 .Sh ERRORS
  65 For a full list of possible errors see the
  66 .Sy DIAGNOSTICS
  67 section in
  68 .Xr proc 4 .
  69 .Pp
  70 The
  71 .Fn Psetpriv
  72 function will fail if:
  73 .Bl -tag -width Er
  74 .It Er EBADF
  75 .Fa P
  76 doesn't refer to an active process, but a core file, zombie, or a file.
  77 .El
  78 .Sh INTERFACE STABILITY
  79 .Sy Uncommitted
  80 .Sh MT-LEVEL
  81 See
  82 .Sy LOCKING
  83 in
  84 .Xr libproc 3LIB .
  85 .Sh SEE ALSO
  86 .Xr libproc 3LIB ,
  87 .Xr Ppriv 3PROC ,
  88 .Xr proc 4 ,
  89 .Xr privileges 5