在Mac OS X上启用没有sudo的dtrace?

我如何使用户在Mac OS X上使用dtrace。我正在尝试在Linux上执行strace,我不喜欢使用提升的权限运行应用程序。

UPDATE

好吧,我可以告诉你最好的。 保持恶意应用程序通过debugging破坏系统的唯一方法是。

  1. 在单独的控制台中连接到进程
  2. 使用sudo两次

以便:

sudo dtruss sudo -u myusername potentially_harmful_app 

我用这个简短的程序validation了这一点:

 #include <iostream> #include <unistd.h> int main() { std::cout << "effective euid " << geteuid() << "\n"; } 

有关更多信息,请参阅此讨论:

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

请参阅上面的我的更新。 如果我见过一个,这是一个很糟糕的安全漏洞。 dtruss的正确实现应该放弃它调用的任何程序的权限。 在一个系统上有几个用户,他们中的一个会被搞砸,并允许一个写得不好的程序来垃圾。

你不能有两个。 dtrace需要root权限才能与内核通信,所以它必须以root权限(setuid)或root权限运行。

以root身份chmod 4755 dtrace

任何时候你运行的程序都会以root权限运行