Unklarheiten mit seteuid

Diskutiere Unklarheiten mit seteuid im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hi! Kann mir jemand bitte erklären, was dieses Programm andeuten soll? Also ich meine diesen Zusammenhang zwischen cf() und seteuid()... Danke...

  1. art

    art Jungspund

    Dabei seit:
    22.06.2007
    Beiträge:
    14
    Zustimmungen:
    0
    Hi!
    Kann mir jemand bitte erklären, was dieses Programm andeuten soll?
    Also ich meine diesen Zusammenhang zwischen cf() und seteuid()...
    Danke im voraus!!!

    Code:
     #include  <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <stdlib.h>
    #include <string.h>
    
    cf(fname)
    char *fname;
    {
        int fd;
        fd=open(fname,O_RDWR|O_CREAT,0644);
        write(fd,fname,strlen(fname));
        write(fd,"\n",1);
        close(fd);
    }
    
    main()
    {  int uid;
       int euid;
       int res;
       
       uid=getuid();
       euid=geteuid();
       printf("Bei Programstart: ") ;
       printf("real uid = %d, effective uid = %d\n", uid, euid);
    
       printf("Erzeuge file1\n");
       cf("file1");
       res=seteuid(uid);
       if (res) printf("res setuid %d\n",res);
       printf("seteuid(%d): real uid = %d, effective uid = %d\n", uid,getuid(), geteuid());
    
       printf("Erzeuge file2\n");
       cf("file2");
       res=seteuid(euid);
       if (res) printf("res seteuid %d\n",res);
       printf("seteuid(%d): real uid = %d, effective uid = %d\n", euid, getuid(), geteuid());
    
       printf("Erzeuge file3\n");
       cf("file3");
       res=seteuid(uid);
       if (res) printf("res seteuid %d\n",res);
       printf("seteuid(%d): real uid = %d, effective uid = %d\n", uid, getuid(), geteuid());
    
       printf("Erzeuge file4\n");
       cf("file4");
       exit(0);
    }
     
  2. dpkg

    dpkg Mitglied

    Dabei seit:
    21.04.2007
    Beiträge:
    46
    Zustimmungen:
    0
    Ort:
    Linz
    Ich habe leider keine ahnung, was der Code machen soll und kenne mich mit setuid auch nicht aus. Mich würde aber interessieren, wo du den Code her hasst,
    denn
    Code:
    cf(fname)
    char *fname;
    {
    ...
    }
    ist eine veraltete Syntax(K&R, wenn mich nicht alles täuscht).
     
  3. art

    art Jungspund

    Dabei seit:
    22.06.2007
    Beiträge:
    14
    Zustimmungen:
    0
  4. Yellow

    Yellow Doppel-As

    Dabei seit:
    04.06.2007
    Beiträge:
    149
    Zustimmungen:
    0
    Ort:
    Bad Arolsen
Thema:

Unklarheiten mit seteuid