Включить dtrace без sudo на Mac OS X?

Включить dtrace без sudo на Mac OS X?

Как разрешить пользователям использовать dtrace в Mac OS X? Я пытаюсь сделать эквивалент strace в Linux, и мне не нравится запускать приложения с повышенными привилегиями.

ОБНОВЛЯТЬ

Ладно, это лучшее, что я могу сказать. Единственный способ не дать вредоносному приложению разрушить систему путем его отладки — это...

  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

chmod 4755 dtrace как root

каждый раз, когда вы запускаете программу, она будет работать с правами root

решение3

Вы не можете иметь и то, и другое. Для взаимодействия с ядром dtrace требуются привилегии root, поэтому он должен запускаться либо с привилегиями root (setuid), либо от имени root.

Связанный контент