*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> setgid (2)              



NAME    [Toc]    [Back]

       setgid - set group identity

SYNOPSIS    [Toc]    [Back]

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

       int setgid(gid_t gid)

DESCRIPTION    [Toc]    [Back]

       setgid  sets  the  effective  group  ID	of the current process. If the
       caller is the superuser, the real and saved group ID's are also set.

       Under Linux, setgid is implemented like	the  POSIX  version  with  the
       _POSIX_SAVED_IDS  feature.  This allows a setgid (other than root) program
 to drop all of its group privileges, do some  un-privileged  work,
       and  then re-engage the original effective group ID in a secure manner.

       If the user is root or the program is setgid root, special care must be
       taken.  The  setgid function checks the effective gid of the caller and
       if it is the superuser, all process related group ID's are set to  gid.
       After  this  has  occurred,  it is impossible for the program to regain
       root privileges.

       Thus, a setgid-root program wishing to  temporarily  drop  root	privileges,
  assume  the  identity of a non-root group, and then regain root
       privileges afterwards cannot use setgid.  You can accomplish this  with
       the (non-POSIX, BSD) call setegid.

RETURN VALUE    [Toc]    [Back]

       On  success,  zero is returned.	On error, -1 is returned, and errno is
       set appropriately.

ERRORS    [Toc]    [Back]

       EPERM  The user is not the super-user,  and  gid  does  not  match  the
	      effective group ID or saved set-group-ID of the calling process.

CONFORMING TO    [Toc]    [Back]

       SVr4, SVID.

SEE ALSO    [Toc]    [Back]

       getgid(2), setregid(2), setegid(2)

Linux 1.1.36			  1994-07-29			     SETGID(2)
[ Back ]
 Similar pages
Name OS Title
getgid Linux get group identity
setfsgid Linux set group identity used for file system checks
getuid Linux get user identity
setuid Linux set user identity
satgetid IRIX get or set audit identity
id FreeBSD return user identity
su FreeBSD substitute user identity
glcloadidentity IRIX assign identity value to GLC_BITMAP_MATRIX
su OpenBSD substitute user identity
id OpenBSD return user identity
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service