Mac OS X でユーザーが dtrace を使用できるようにするにはどうすればよいでしょうか。Linux で strace と同等のことを実行しようとしていますが、昇格された権限でアプリケーションを実行するのは好きではありません。
アップデート
わかりました、私が言える最善のことはこうです。悪質なアプリケーションがシステムを破壊しないようにする唯一の方法は、デバッグすることです。
- 別のコンソールでプロセスに接続する
- sudoを2回使用する
となることによって:
sudo dtruss sudo -u myusername potentially_harmful_app
私は次の短いプログラムでこれを検証しました:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
詳細については、このディスカッションを参照してください:
答え1
上記の私の更新を参照してください。これは、私が今まで見た中で最もひどいセキュリティ ホールです。dtruss の適切な実装では、呼び出されるすべてのプログラムの権限が削除されるはずです。システムに複数のユーザーがいる場合、そのうちの 1 人がこれを台無しにし、不適切に記述されたプログラムによって物事が台無しになる可能性が高くなります。
答え2
ルートとして chmod 4755 dtrace
プログラムを実行するたびにルート権限で実行されます
答え3
両方を同時に使用することはできません。dtrace はカーネルと通信するために root 権限を必要とするため、root 権限 (setuid) で実行するか、root で実行する必要があります。