Unklarheiten mit seteuid

A

art

Jungspund
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);
}
 
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).
 

Ähnliche Themen

Unix Webserver mit HTML Seite erstellen

Prozesskommunikation mit PIPES - wie funktioniert das?

Windows clients können nicht mehr auf lange laufendes System zugreifen

NagiosGrapher 1.7.1 funktioniert nicht

Programmpause bis parport0 sich ändert?

Zurück
Oben