Wie kann ich Sie dtrace ausführen, die verfolgt Befehl keine root-Privilegien?

OS X fehlt linux strace, aber es hat dtrace was soll so viel besser sein.

Allerdings vermisse ich die Möglichkeit zu tun, einfache Rückverfolgung auf einzelne Befehle. Zum Beispiel auf linux, ich kann schreiben strace -f gcc hello.c zu caputre alle system-Aufrufe, die gibt mir die Liste der alle die Dateinamen benötigt der compiler um mein Programm zu kompilieren (die ausgezeichnete memoize Skript baut auf diesen trick)

Möchte ich memoize-port auf dem mac, also brauche ich irgendeine Art von strace. Was ich eigentlich brauche ist die Liste der Dateien gcc liest und schreibt in das, was ich also brauche, ist mehr von einer truss. Sicher genug kann ich sagen dtruss -f gcc hello.c - und etwas der gleichen Funktionalität, aber dann ist der compiler die Ausführung mit root-Privilegien, was natürlich nicht wünschenswert ist (abgesehen von der massiven Sicherheitsrisiko, ein Problem ist, dass die a.out Datei ist jetzt im Besitz von root 🙂

Dann habe ich versucht dtruss -f sudo -u myusername gcc hello.c, aber das fühlt sich ein bisschen falsch, und sowieso nicht funktioniert (ich bekomme keine a.out Datei überhaupt in dieser Zeit, nicht sicher, warum)

Alle, die lange Geschichte, die versucht zu motivieren, meine ursprüngliche Frage: wie bekomme ich dtrace meinen Befehl mit normalen Benutzerrechten, wie strace in linux ?

Edit: scheint, dass ich bin nicht die einzige, die sich Fragen, wie dies zu tun: Frage #1204256 ist so ziemlich das gleiche ist wie meins (und hat die gleichen suboptimalen sudo Antwort 🙂

InformationsquelleAutor Gyom | 2010-06-09
Schreibe einen Kommentar