Назад | Перейти на главную страницу

Включить 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

См. Мое обновление выше. Это плохая дыра в безопасности, если я когда-либо видел ее. Правильная реализация dtruss должна отбросить привилегии любой программы, которую он вызывает. Имея в системе несколько пользователей, один из них обязательно все испортит и позволит плохо написанной программе испортить вещи.

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

chmod 4755 dtrace как root

при каждом запуске программа будет запускаться с правами root