home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3243 < prev    next >
Internet Message Format  |  1991-04-26  |  2KB

  1. From: muts@fysak.fys.ruu.nl (Peter Mutsaers)
  2. Newsgroups: alt.sources
  3. Subject: another 'su encancer'
  4. Message-ID: <muts.672650807@fysaj>
  5. Date: 26 Apr 91 07:26:47 GMT
  6.  
  7. Now that we are discussing a su encancer etc., here is a 'root' program that
  8. I've been using the last 1.5 year.
  9. The syntax is 'root command [args]' and runs one command with su privilege.
  10. It is quite safe, and checks if the uid is right. (only works for one user).
  11. Without args it executes a shell with su privilege.
  12. Of course this program must also be owned by root and be setuid.
  13. Change the number on the first line of main() to your own uid.
  14.  
  15. # This is a shell archive.  Remove anything before this line,
  16. # then unpack it by saving it in a file and typing "sh file".
  17. #
  18. # Wrapped by Peter Mutsaers <muts@fysaq> on Fri Apr 26 09:30:05 1991
  19. #
  20. # This archive contains:
  21. #    root.c    
  22. #
  23.  
  24. LANG=""; export LANG
  25. PATH=/bin:/usr/bin:$PATH; export PATH
  26.  
  27. echo x - root.c
  28. cat >root.c <<'@EOF'
  29. #include <stdio.h>
  30. #include <string.h>
  31.  
  32. int main(argc, argv)
  33. int argc;
  34. char *argv[];
  35.  
  36. {
  37.     if (1030 != getuid()) {
  38.         fprintf(stderr,"sorry...");
  39.         sleep(2);
  40.         fprintf(stderr,"\n");
  41.         exit(1);
  42.     }
  43.  
  44.     setuid(geteuid());
  45.     setgid(getegid());
  46.  
  47.     switch (argc) {
  48.  
  49.     case 1:
  50.         execl("/bin/csh", "csh", (char *) 0);
  51.         perror("csh");
  52.         exit(1);
  53.  
  54.     default:
  55.         execvp(argv[1], &argv[1]);
  56.         perror(argv[1]);
  57.         exit(1);
  58.     }
  59.  
  60. }
  61. @EOF
  62.  
  63. chmod 644 root.c
  64.  
  65. exit 0
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. --
  75. Peter Mutsaers                          email:    muts@fysap.fys.ruu.nl     
  76. Rijksuniversiteit Utrecht                         muts@fys.ruu.nl
  77. Princetonplein 5                          tel:    (+31)-(0)30-533880
  78. 3584 CG Utrecht, Netherlands                                  
  79.