Как разрешить пользователям использовать dtrace в Mac OS X. Я пытаюсь использовать аналог strace в Linux, и мне не нравится запускать приложения с повышенными привилегиями.
ОБНОВИТЬ
Хорошо, все, что я могу сказать. Единственный способ удержать гнусное приложение от разрушения системы путем его отладки - это.
Так что:
sudo dtruss sudo -u myusername potentially_harmful_app
Я проверил это с помощью этой короткой программы:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
См. Это обсуждение для получения дополнительной информации:
См. Мое обновление выше. Это плохая дыра в безопасности, если я когда-либо видел ее. Правильная реализация dtruss должна отбросить привилегии любой программы, которую он вызывает. Имея в системе несколько пользователей, один из них обязательно все испортит и позволит плохо написанной программе испортить вещи.
Вы не можете иметь обоих. dtrace требует привилегий суперпользователя для взаимодействия с ядром, поэтому он должен работать либо с привилегиями root (setuid), либо с правами суперпользователя.
chmod 4755 dtrace как root
при каждом запуске программа будет запускаться с правами root