如何让用户在 Mac OS X 上使用 dtrace。我正在尝试在 Linux 上执行与 strace 等效的操作,并且我不喜欢以提升的权限运行应用程序。
更新
好的,我只能说这么多。通过调试来防止恶意应用程序破坏系统的唯一方法是。
- 在单独的控制台中附加到该进程
- 使用 sudo 两次
以便:
sudo dtruss sudo -u myusername potentially_harmful_app
我用这个简短的程序验证了这一点:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
请参阅此讨论以了解更多信息:
答案1
请参阅我上面的更新。这是我见过的最糟糕的安全漏洞。dtruss 的正确实现应该放弃它调用的任何程序的权限。如果系统上有多个用户,其中一个用户肯定会把事情搞砸,并允许编写糟糕的程序破坏一切。
答案2
以 root 身份 chmod 4755 dtrace
每次运行该程序时,都会以 root 权限运行
答案3
您不能同时拥有这两者。dtrace 需要 root 权限才能与内核通信,因此它必须以 root 权限(setuid)运行或由 root 运行。