home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / NEXTSTEP / UNIX / Utilities / asroot-1.0.0-MIHS / asroot.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-14  |  1.1 KB  |  52 lines

  1. /* -*-C-*-
  2. *******************************************************************************
  3. *
  4. * File:         asroot.c
  5. * RCS:          $Header: $
  6. * Description:  Allow members of the group wheel to run programs as root
  7. * Author:       Carl Edman
  8. * Created:      Wed Feb 17 16:42:47 1993
  9. * Modified:     Fri May 14 09:14:22 1993 (Carl Edman) cedman@capitalist
  10. * Language:     C
  11. * Package:      N/A
  12. * Status:       Distribution
  13. *
  14. * (C) Copyright 1993, but otherwise this file is perfect freeware.
  15. *
  16. *******************************************************************************
  17. */
  18.  
  19. #include <libc.h>
  20. #include <sys/param.h>
  21.  
  22. void main(int argc,char *argv[])
  23.   {
  24.   int gidset[NGROUPS],i;
  25.   if ((i=getgroups(NGROUPS,gidset))==-1)
  26.     {
  27.     perror("getgroups");
  28.     exit(1);
  29.     }
  30.   for(i--;i>=0;i--) if (gidset[i]==0) break;
  31.   if (i<0)
  32.     {
  33.     fprintf(stderr,"Sorry\n");
  34.     exit(2);
  35.     }
  36.   if (setregid(getegid(),getegid())==-1)
  37.     {
  38.     perror("setregid");
  39.     exit(3);
  40.     }  
  41.   if (setreuid(geteuid(),geteuid())==-1)
  42.     {
  43.     perror("setreuid");
  44.     exit(4);
  45.     }
  46.   if (execvp(argv[1],argv+1)==-1)
  47.     {
  48.     perror("execvp");
  49.     exit(5);
  50.     }
  51.   }
  52.