Man Linux: Main Page and Category List

NAME

       setgid - set-group-ID

SYNOPSIS

       #include <unistd.h>

       int setgid(gid_t gid);

DESCRIPTION

       If  the process has appropriate privileges, setgid() shall set the real
       group ID, effective group ID, and the saved set-group-ID of the calling
       process to gid.

       If  the  process does not have appropriate privileges, but gid is equal
       to the real group ID or the saved set-group-ID, setgid() shall set  the
       effective  group  ID  to  gid; the real group ID and saved set-group-ID
       shall remain unchanged.

       The setgid() function shall not affect the supplementary group list  in
       any way.

       Any  supplementary  group  IDs  of  the  calling  process  shall remain
       unchanged.

RETURN VALUE

       Upon successful completion, 0  is  returned.  Otherwise,  -1  shall  be
       returned and errno set to indicate the error.

ERRORS

       The setgid() function shall fail if:

       EINVAL The value of the gid argument is invalid and is not supported by
              the implementation.

       EPERM  The process does not have appropriate privileges  and  gid  does
              not match the real group ID or the saved set-group-ID.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       Refer to the RATIONALE section in setuid() .

FUTURE DIRECTIONS

       None.

SEE ALSO

       exec()  ,  getegid()  ,  geteuid()  , getgid() , getuid() , setegid() ,
       seteuid() , setregid() , setreuid() , setuid() , the  Base  Definitions
       volume of IEEE Std 1003.1-2001, <sys/types.h>, <unistd.h>

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .