Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setregid(3) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

setreuid(3)

exec(2)

getuid(2)

setuid(2)



setregid(3-BSD)   MISC. REFERENCE MANUAL PAGES    setregid(3-BSD)



NAME
     setregid - set real and effective group IDs

SYNOPSIS
     cc [ flag... ] file ... -lucb
     int setregid(rgid, egid)
     int rgid, egid;

DESCRIPTION
     setregid is used to set the real and effective group IDs  of
     the  calling  process.   If  rgid is -1, the real GID is not
     changed; if egid is -1, the effective GID  is  not  changed.
     The  real  and effective GIDs may be set to different values
     in the same call.  If the effective user ID of  the  calling
     process  is  super-user,  the real GID and the effective GID
     can be set to any legal value.  If the effective user ID  of
     the  calling  process is not super-user, either the real GID
     can be set to the saved setGID from execv, or the  effective
     GID  can  either be set to the saved setGID or the real GID.
     Note: if a setGID process sets its effective GID to its real
     GID,  it  can  still set its effective GID back to the saved
     setGID.  In either case, if the real GID  is  being  changed
     (that  is, if rgid is not -1), or the effective GID is being
     changed to a value not equal to the real GID, the saved set-
     GID  is  set equal to the new effective GID. If the real GID
     is changed from its current value, the old value is  removed
     from  the  groups  access  list  (see getgroups(2)) if it is
     present in that list, and the new  value  is  added  to  the
     groups  access list if it is not already present and if this
     would not cause the number of groups in that list to  exceed
     NGROUPS, as defined in /usr/include/sys/param.h.

RETURN VALUE
     Upon successful completion, a value of 0 is returned.   Oth-
     erwise,  a value of -1 is returned and errno is set to indi-
     cate the error.

ERRORS
     setregid will fail and neither of  the  group  IDs  will  be
     changed if:

     EPERM          The calling process's effective  UID  is  not
                    the super-user and a change other than chang-
                    ing the real GID  to  the  saved  setGID,  or
                    changing the effective GID to the real GID or
                    the saved GID, was specified.

SEE ALSO
     setreuid(3)   exec(2),   getuid(2),   setuid(2)    in    the
     Programmer's Reference Manual.





                                                                1



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026