web-dev-qa-db-ja.com

Mac OS XでSudoなしでdtraceを有効にしますか?

ユーザーがMacOS Xでdtraceを使用できるようにするにはどうすればよいですか。Linuxでstraceと同等の処理を実行しようとしていますが、昇格された特権でアプリケーションを実行するのは好きではありません。

[〜#〜]更新[〜#〜]

わかりました、私が言える最高のものです。悪意のあるアプリケーションがデバッグによってシステムを破壊しないようにする唯一の方法は、次のとおりです。

  1. 別のコンソールでプロセスにアタッチする
  2. Sudoを2回使用する

そのため:

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

5
Juan

上記の私の更新を参照してください。私が見たことがあれば、これは悪いセキュリティホールです。 dtrussを適切に実装すると、呼び出すプログラムの特権が削除されます。システムに複数のユーザーがいると、そのうちの1人がこれを台無しにして、ひどく書かれたプログラムが物をゴミ箱に捨てることを許してしまいます。

3
Juan

ルートとしてのchmod4755 dtrace

プログラムを実行するときはいつでもroot権限で実行されます

1
silviud

両方を持つことはできません。 dtraceはカーネルと通信するためにroot権限を必要とするため、root privs(setuid)またはrootで実行する必要があります。

1
Brian Topping