Chapter Contents

Previous

Next
setuid

setuid



Specify User ID

Portability: POSIX.1 conforming, UNIX compatible


SYNOPSIS
DESCRIPTION
RETURN VALUE
EXAMPLE
RELATED FUNCTIONS


SYNOPSIS

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

int setuid(uid_t userID);


DESCRIPTION

setuid changes the effective user ID (and possibly the real user ID) of the current process to the ID specified by userID . If uid is the process' real user ID, setuid sets the process' effective user ID. If userID is not the process' real user ID, setuid is allowed to proceed only if the calling process is a superuser process, in which case it sets all of the real user ID, effective user ID and saved set user ID as specified.


RETURN VALUE

setuid returns a 0 if successful and a -1 if not successful.


EXAMPLE

The following example illustrates the use of setuid to set the effective user ID to the real user ID:

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

main()
{
   uid_t realUID, effectiveUID;

   realUID = getuid();
   effectiveUID = geteuid();

   printf("Real user ID = %dn", (int) realUID);
   printf("Effective user ID = %dn", (int) effectiveUID);

   if (realUID != effectiveUID) {
      if (setuid(realUID) != 0)
         perror("setuid() error");
      else
         printf("Effective user ID changed to %d.n", (int) realUID);
   }
}


RELATED FUNCTIONS

geteuid , getuid , seteuid , setgid


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.