Verständnisprobleme mit open/setuid
-
Hi!
Kann mir jemand bitte erklären, was dieses Programm andeuten soll?
Also ich meine diesen Zusammenhang zwischen cf() und seteuid()...
Danke im voraus!!!#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); }
-
Der Sinn des Programms erschließt sich mir auch nicht.
Vll war das früher mal ein exploit.
Zumindest ist der code wohl schon ziemlich altcf(fname) char *fname; {
Definition von Funktionen ohne Typ
und den Typ der Parameter hinter die Funktion geschrieben.
Das ist ziemlicher "altes" C.
(Wundert mich eignetlicht das der gcc das noch schluckt)Zumindest der output des Programm ist so wie man ihn erwartet:
storm@localhost ~ $ gcc test.c -o test storm@localhost ~ $ ./test Bei Programstart: real uid = 1000, effective uid = 1000 Erzeuge file1 seteuid(1000): real uid = 1000, effective uid = 1000 Erzeuge file2 seteuid(1000): real uid = 1000, effective uid = 1000 Erzeuge file3 seteuid(1000): real uid = 1000, effective uid = 1000 Erzeuge file4 storm@localhost ~ $ ls -l file* -rw-r--r-- 1 storm users 6 23. Jun 12:23 file1 -rw-r--r-- 1 storm users 6 23. Jun 12:23 file2 -rw-r--r-- 1 storm users 6 23. Jun 12:23 file3 -rw-r--r-- 1 storm users 6 23. Jun 12:23 file4