ユーザーがMacOS Xでdtraceを使用できるようにするにはどうすればよいですか。Linuxでstraceと同等の処理を実行しようとしていますが、昇格された特権でアプリケーションを実行するのは好きではありません。
[〜#〜]更新[〜#〜]
わかりました、私が言える最高のものです。悪意のあるアプリケーションがデバッグによってシステムを破壊しないようにする唯一の方法は、次のとおりです。
そのため:
Sudo dtruss Sudo -u myusername potentially_harmful_app
私はこの短いプログラムでこれを確認しました:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
詳細については、このディスカッションを参照してください。
上記の私の更新を参照してください。私が見たことがあれば、これは悪いセキュリティホールです。 dtrussを適切に実装すると、呼び出すプログラムの特権が削除されます。システムに複数のユーザーがいると、そのうちの1人がこれを台無しにして、ひどく書かれたプログラムが物をゴミ箱に捨てることを許してしまいます。
ルートとしてのchmod4755 dtrace
プログラムを実行するときはいつでもroot権限で実行されます
両方を持つことはできません。 dtraceはカーネルと通信するためにroot権限を必要とするため、root privs(setuid)またはrootで実行する必要があります。