Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : lg@rgz.ru                            2:5020/400     12 Jan 2001  18:04:49
 To : All
 Subject : Re: root
 -------------------------------------------------------------------------------- 
 
 Pavel Knyazev <Pavel.Knyazev@p1.f181.n5010.z2.fidonet.org> wrote:
 
 >    Alexey,
 >    Пятница Январь 12 2001 04:08, Alexey Bogdanov => All:
 
 >  AB> Господа, а как часть пpав pyта пеpедать юзеpy(ам) из гpyппы wheel?
 >  AB> Пpо su я в кypсе, но постоянно вводить длииинный паpоль pовно для
 >  AB> того, чтобы потом сказать halt yже надоело.
 
 вот тут накатал прогу может поможет 
 ----------begin----------
 #include <stdio.h>
 #include <pwd.h>
 #include <errno.h>
 #include <stdlib.h>
 
 int gouser(struct passwd *user) {
   pid_t spid;
   int pstat;
   char *sh;
   sh = getenv("SHELL");
   if (sh==NULL) {
       fprintf(stderr, "no shell available\nset SHELL var\n");
       return 0;
   }
   switch(spid = fork()) {
        case -1:
           break;
        case  0:
           setgid(user->pw_gid);
           setuid(user->pw_uid);
           execl(sh, sh, (char *) NULL);
        default:
           do {
               spid = wait(&pstat);
           } while ( spid == -1 && errno == EINTR);
           break;
   }
 }
 
 int
 main(int argc, char* argv[])
 {
  struct passwd *pwd, *pwdu;
  uid_t uid;
 
  uid = getuid();
  pwdu  = getpwuid(uid);
  if (argc == 2) { 
      if (uid == 0 ) {
              fprintf(stderr, "you dont need to go :)\n");
              return 1;
      }
      if ((pwdu->pw_gid == 0) && ((pwd = getpwnam(argv[1]))!=NULL)) {
          gouser(pwd);
          return 0;
      }
      else {
          fprintf(stderr, "%s: user %s not found\n", argv[0], argv[1]);
          return 1;
      }
  }
 }
 --------------------end-------------------
 компиляешь ее и 
 # chown root <progname>
 # chmod u+s <progname>
 
 usage: <progname> <username>
 и теперь все кто в группе wheel могут становиться любым юзером
 f.e.
 [16:59][lg@rgz:p0][~]$ id
 uid=1002(lg) gid=0(wheel) groups=0(wheel)
 [17:02][lg@rgz:p0][~]$ ./gon root
 God made the Idiot for practice, and then He made the School Board
                 -- Mark Twain
 [17:03][root@rgz:p0][~]#id
 uid=0(root) gid=0(wheel) groups=0(wheel)
 [17:03][root@rgz:p0][~]#
 [17:03][lg@rgz:p0][~]$ ./gon nobody
 Old programmers never die.  They just branch to a new address.
 [17:03][nobody@rgz:p0][~]$ id
 uid=65534(nobody) gid=65534(nobody) groups=65534(nobody), 0(wheel)
 [17:03][nobody@rgz:p0][~]$ ./gon root
 ./gon: user root not found
 [17:03][nobody@rgz:p0][~]$ 
 
 -- 
 zev
 --- ifmail v.2.15dev5
  * Origin: Gamma NNTP server Moscow Russia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 root   Alexey Bogdanov   12 Jan 2001 05:08:24 
 root   Pavel Knyazev   12 Jan 2001 09:50:06 
 root   Alexey Bogdanov   12 Jan 2001 10:28:22 
 root   Stas Kornienko   12 Jan 2001 12:20:12 
 Re: root   Dennis Melentyev   12 Jan 2001 18:43:36 
 root   Pavel Knyazev   13 Jan 2001 00:49:34 
 Re: root   Eugene Grosbein   13 Jan 2001 16:31:07 
 Re: root   Pavel Pokrovsky   15 Jan 2001 23:44:07 
 Re: root   lg@rgz.ru   12 Jan 2001 18:04:49 
 Re: root   Boris Aksyonov   12 Jan 2001 11:13:18 
 Re: root   Serge Negodyuck   12 Jan 2001 15:27:38 
 Re: root   Jen Linkova   12 Jan 2001 15:22:18 
 Re: root   Sergei Tsvetukhin   12 Jan 2001 16:18:41 
 Re: root   Paul A. Solovyev   12 Jan 2001 19:18:22 
 root   Sergei Simonenko   13 Jan 2001 23:42:00 
 Re: root   Pavel Pokrovsky   15 Jan 2001 23:43:18 
Архивное /ru.unix.bsd/9136437e06dd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional