setgid -- Specify Group ID

SYNOPSIS

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

 int setgid(gid_t groupID);
 

DESCRIPTION

setgid sets one or more of the group IDs of the current process. groupID is the new group ID. setgid succeeds and sets the effective group ID to the real group ID if groupID is the same as the real group ID of the process. If groupID is not the same as the real group ID of the process, setgid succeeds only if the process belongs to a superuser, in which case it sets the real group ID, effective group ID, and saved set group ID to groupID.

RETURN VALUE

setgid returns a 0 if successful and a - 1 if unsuccessful.

EXAMPLE

The following example illustrates the use of setgid to set the effective group ID to the real group ID:
  #include <unistd.h>
  #include <stdio.h>

  main()
  {
     uid_t realGID, effectiveGID;

     realGID = getgid();
     effectiveGID = getegid();

     printf("Real group ID = %dn", (int) realGID);
     printf("Effective group ID = %dn", (int) effectiveGID);

     if (realGID != effectiveGID) {
        if (setgid(realGID) != 0)
           perror("setgid error");
        else
           printf("Effective group ID changed to %d.n", (int) realGID);
     }
  }

 

RELATED FUNCTIONS

getegid, getgid, setegid, setuid


Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.