Article View: de.comp.os.linux
Article #9[Q] fopen verhindert sete[ug]id - Warum?
From: Martin Schulze
Date: Sun, 13 Aug 1995 09:57
Date: Sun, 13 Aug 1995 09:57
55 lines
2428 bytes
2428 bytes
Hallo Leutz!
Ich habe ein Problem mit einem Programm, das als root gestartet wird
und dann seine uid/gid aendern soll.
Diese Anweisung
------------------------- happs 8<--------------------------
f=fopen("/proc/self/cmdline","r");
------------------------- happs 8<--------------------------
hat zu einem spaeteren Zeitpunkt zur Folge, dass Fehler auftreten:
------------------------- happs 8<--------------------------
if (seteuid(RUN_UID)) fprintf (stderr, "uid: errno %d\n", errno);
if (setegid(RUN_GID)) fprintf (stderr, "gid: errno %d\n", errno);
------------------------- happs 8<--------------------------
seteuid laeuft ohne Fehler durch. In der Prozesstabelle (/proc und ps)
laeuft das Programm aber immer noch als root und nicht als RUN_UID.
Das setegid produziert einen Fehler, errno=1 (EPERM /* Operation not
permitted */).
Wenn ich das fopen weglasse bzw. vorher aus der Funktion returniere,
habe ich an der sete[ug]id Stelle kein Problem.
Jetzt die Frage: Was passiert an der Stelle, das die Sache kaputt
machen kann? Koennte das ein Fehler im Kernel sein? Ich habe 1.2.11,
libc 4.6.27.
Die "Datei' wird uebrigens auch wieder geschlossen:
----------------------------- happs 8<------------------------------
FILE *f;
f=fopen("/proc/self/cmdline","r");
if (!f) {
fprintf(stderr, "check_pid: Cannot open /proc/self/cmdline, huh?\n");
return 0;
}
fscanf(f,"%s", &mycmdln);
fclose(f);
----------------------------- happs 8<------------------------------
Vielen Dank fuer die zahlreichen Vorschlaege,
Joey
--
/ Martin Schulze * joey@infodrom.north.de * 26129 Oldenburg /
/ +49-441-777884 * Login&Passwd: nuucp * Index: ~/ls-lR.gz /
/ http://home.pages.de/~joey/
/ The only stupid question is the unasked one /
----------------------------------------------------------------
12.8.95: Oldenburger Usenet(ter)-Treffen in Wildeshausen
Technical Details
Message-ID:
<40kib6$7cn@finlandia.infodrom.north.de>Path:
arc1-ca.pugleaf.net!caty.ol.sub.de!indrom!finlandia!usenetShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!caty.ol.sub.de!indrom!finlandia!usenet From: joey@finlandia.infodrom.north.de (Martin Schulze) Newsgroups: de.comp.os.linux,de.comp.lang.c Subject: [Q] fopen verhindert sete[ug]id - Warum? Followup-To: de.comp.os.linux Date: 13 Aug 1995 11:57:58 +0200 Organization: Infodrom Oldenburg Message-ID: <40kib6$7cn@finlandia.infodrom.north.de> NNTP-Posting-Host: finlandia.infodrom.north.de