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

Jua*_*uan 5 mac dtrace mac-osx sudo

如何使用户能够在 Mac OS X 上使用 dtrace。我正在尝试在 Linux 上执行与 strace 等效的操作,但我不喜欢以提升的权限运行应用程序。

更新

好吧,我能说的最好。防止恶意应用程序通过调试破坏系统的唯一方法是。

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

以便:

sudo dtruss sudo -u myusername potentially_harmful_app
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Jua*_*uan 3

请参阅我上面的更新。如果我见过的话,这是一个严重的安全漏洞。dtruss 的正确实现应该删除它调用的任何程序的特权。一个系统上有多个用户,其中一个用户肯定会把事情搞砸,并允许编写糟糕的程序破坏东西。