Hallo noch mal, danke für Eure Antworten. Ich habe natürlich die Funktionen chmod() und chown() genutzt, nur gelingt es mir nicht, aus einem root-suid-Program heraus, mit diesen Funktionen z.B. den Besitzer eines Verzeichnisses zu ändern. Ich habe es im Programm schon mit setuid(0) und seteuid(0) versucht vor der chown bzw. chown Zeile, aber es hat nicht geholfen. Weiss jemand warum? Geht das überhaupt aus so einem Program heraus? Danke im voraus, Anibal --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Anibal Vasquez schrieb am 07.Okt.2000:
danke f?r Eure Antworten. Ich habe nat?rlich die Funktionen chmod() und chown() genutzt, nur gelingt es mir nicht, aus einem root-suid-Program heraus, mit diesen Funktionen z.B. den Besitzer eines Verzeichnisses zu ?ndern. Ich habe es im Programm schon mit setuid(0) und seteuid(0) versucht vor der chown bzw. chown Zeile, aber es hat nicht geholfen. Weiss jemand warum? Geht das ?berhaupt aus so einem Program heraus?
Kannst Du mal genau sagen was Du willst? setuid und seteuid funktionieren nur, wenn es vom Superuser aufgerufen wird. Wenn das Programm root gehört, also root Besitzer der ausführbaren Datei mit dem Binärcode ist, und das SUID-Bit gesetzt ist, dann ist der effektive User root. Da brauchst Du keinen seteuid mehr. setuid würde ich nicht benutzen. Der Reale User sollte unbedingt der beleiben, der das Programm auch aufruft. setuid gehört gewissermaßen im Giftschrank. Dieser Systemaufruf muß es natürlich geben, wie sonst könnte login funktionieren, mit dem sich ein beliebiger User einloggen kan? Es wird von mingetty aufgerufen, nachdem jemand was eingegeben hat. Wenn Du seteuid(0) machst, so hat das keinen Sinn, denn es darf nur der Superuser aufrufen, und der hat schon die uid 0. Sinnvoll kann es nur sein, wenn der Superuser zu was anderem wird, etwa setuid(500). Allerdings würde ich da keine Zahl hart drin schreiben. Bernd -- LILO funktioniert nicht? Hast Du /etc/lilo.conf verändert und vergessen, lilo aufzurufen? Ist Deine /boot-Partition unter der 1024 Zylindergrenze? Bei anderen LILO Problemen mal in der SDB nachschauen: http://localhost/doc/sdb/de/html/rb_bootdisk.html |Zufallssignatur 6 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (2)
-
anibal.vasquez@uni.de
-
B.Brodesser@online-club.de