Wie ermögliche ich Benutzern die Verwendung von dtrace unter Mac OS X? Ich versuche, das Äquivalent von strace unter Linux zu verwenden, und ich führe Anwendungen nicht gerne mit erhöhten Berechtigungen aus.
AKTUALISIEREN
Ok, das ist das Beste, was ich sagen kann. Die einzige Möglichkeit, eine schädliche Anwendung durch Debuggen davon abzuhalten, das System zu ruinieren, besteht darin, Folgendes zu tun.
- An den Prozess in einer separaten Konsole anhängen
- Verwenden Sie sudo zweimal
So dass:
sudo dtruss sudo -u myusername potentially_harmful_app
Ich habe dies mit diesem kurzen Programm überprüft:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
Weitere Informationen finden Sie in dieser Diskussion:
Antwort1
Bitte lesen Sie mein Update oben. Das ist eine schlimme Sicherheitslücke, wenn ich je eine gesehen habe. Eine ordnungsgemäße Implementierung von dtruss sollte die Berechtigungen aller aufgerufenen Programme aufheben. Wenn mehrere Benutzer auf einem System sind, würde einer von ihnen dies mit Sicherheit durcheinanderbringen und einem schlecht geschriebenen Programm erlauben, alles zu zerstören.
Antwort2
chmod 4755 dtrace als Root
jedes Mal, wenn Sie das Programm ausführen, wird es mit Root-Rechten ausgeführt
Antwort3
Sie können nicht beides haben. dtrace erfordert Root-Berechtigungen, um mit dem Kernel zu kommunizieren, daher muss es entweder mit Root-Berechtigungen (Setuid) oder durch Root ausgeführt werden.