Hallo,
ja, ich weiss, dass "system()" böse ist, es ist aber nur für mich zu Testzwecken. Ich wollte sowas machen:
Es tretten dabei 2 Probleme auf.main ()
{
printf("bitte schoen: %s\n",system("/bin/cat /etc/shadow"));
}
1) Wenn ich es als _nicht_root_ ausführe, bekomme ich:
also funktioniert SUID überhaupt nicht. In der man-Page von 'system' steht was von, dass es wegen Sicherheit unterdrückt wird, aber wie kann ich dann sowas machen, wenn ich System-Befehle aus einem SUID-C-Program wirklich brauche?/bin/cat: /etc/shadow: Keine Berechtigung
Speicherzugriffsfehler
2) Wenn ich es als root ausführe, bekomme ich zwar den gewünschten output, aber es wird irgendwie unabhängig von meinem printf ausgegeben, dh erst der Inhalt der shadow und erst zu letzt folgt dann mein "bitte schoen: (null)"
Könnte mir jemand kurz helfen?
Danke
Martin, der C-newbie
Lesezeichen