'setuid' ist ein Dateiberechtigungs-Flag unter Unix-ähnlichen Systemen, das eine ausführbare Datei mit den Berechtigungen des Dateibesitzers und nicht mit denen des aufrufenden Benutzers ausführt. Auf einigen Systemen (FreeBSD) funktioniert es außerdem identisch mit dem zugehörigen Flag 'setgid' in Verzeichnissen, was dazu führt, dass neue Dateien die Berechtigungen des Verzeichnisses erben und nicht die des aktuellen Benutzers.
Sowohl system() als auch execve() kann verwendet werden, um einen anderen Befehl innerhalb eines Programms auszuführen. Warum ist in Set-UID-Programmen system() gefährlich, während execve() sicher ist?
12.12.2014, 10:25
Ich habe ein Programm, das ich als root ausführe. Ich möchte, dass das Programm eine andere Anwendung als normaler Benutzer ausführt. Ich habe setgid() ausprobiert und es funktioniert, aber ich kann dann nicht zu root oder einem anderen Benut...
27.09.2013, 10:02