Dtrace ohne sudo unter Mac OS X aktivieren?

Dtrace ohne sudo unter Mac OS X aktivieren?

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.

  1. An den Prozess in einer separaten Konsole anhängen
  2. 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:

http://discussions.apple.com/message.jspa?messageID=6430877

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.

verwandte Informationen