在 Mac OS X 上无需 sudo 即可启用 dtrace?

在 Mac OS X 上无需 sudo 即可启用 dtrace?

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

更新

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

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

以便:

sudo dtruss sudo -u myusername potentially_harmful_app

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

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

请参阅此讨论以了解更多信息:

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

答案1

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

答案2

以 root 身份 chmod 4755 dtrace

每次运行该程序时,都会以 root 权限运行

答案3

您不能同时拥有这两者。dtrace 需要 root 权限才能与内核通信,因此它必须以 root 权限(setuid)运行或由 root 运行。

相关内容