home *** CD-ROM | disk | FTP | other *** search
- /* -*-C-*-
- *******************************************************************************
- *
- * File: asroot.c
- * RCS: $Header: $
- * Description: Allow members of the group wheel to run programs as root
- * Author: Carl Edman
- * Created: Wed Feb 17 16:42:47 1993
- * Modified: Fri May 14 09:14:22 1993 (Carl Edman) cedman@capitalist
- * Language: C
- * Package: N/A
- * Status: Distribution
- *
- * (C) Copyright 1993, but otherwise this file is perfect freeware.
- *
- *******************************************************************************
- */
-
- #include <libc.h>
- #include <sys/param.h>
-
- void main(int argc,char *argv[])
- {
- int gidset[NGROUPS],i;
- if ((i=getgroups(NGROUPS,gidset))==-1)
- {
- perror("getgroups");
- exit(1);
- }
- for(i--;i>=0;i--) if (gidset[i]==0) break;
- if (i<0)
- {
- fprintf(stderr,"Sorry\n");
- exit(2);
- }
- if (setregid(getegid(),getegid())==-1)
- {
- perror("setregid");
- exit(3);
- }
- if (setreuid(geteuid(),geteuid())==-1)
- {
- perror("setreuid");
- exit(4);
- }
- if (execvp(argv[1],argv+1)==-1)
- {
- perror("execvp");
- exit(5);
- }
- }
-