Habilitar o dtrace sem sudo no Mac OS X?

Habilitar o dtrace sem sudo no Mac OS X?

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.

  1. Anexe ao processo em um console separado
  2. 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:

http://discussions.apple.com/message.jspa?messageID=6430877

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.

informação relacionada