Como faço para permitir que os usuários usem o dtrace no Mac OS X. Estou tentando fazer o equivalente ao strace no Linux e não gosto de executar aplicativos com privilégios elevados.
ATUALIZAR
Ok, o melhor que posso dizer. A única maneira de evitar que um aplicativo nefasto estrague o sistema depurando-o é fazê-lo.
- Anexe ao processo em um console separado
- Use sudo duas vezes
Para que:
sudo dtruss sudo -u myusername potentially_harmful_app
Eu verifiquei isso com este pequeno programa:
#include <iostream>
#include <unistd.h>
int main()
{
std::cout << "effective euid " << geteuid() << "\n";
}
Veja esta discussão para mais informações:
Responder1
Por favor, veja minha atualização acima. Esta é uma falha de segurança ruim, se é que já vi uma. Uma implementação adequada do dtruss deve eliminar os privilégios de qualquer programa que ele invoca. Tendo vários usuários em um sistema, um deles poderia bagunçar tudo e permitir que um programa mal escrito destruísse tudo.
Responder2
chmod 4755 dtrace como root
sempre que você executar o programa será executado com privilégios de root
Responder3
Você não pode ter os dois. O dtrace requer privilégios de root para se comunicar com o kernel, portanto ele deve ser executado com privilégios de root (setuid) ou por root.