Ativar dtrace sem sudo no Mac OS X?

5

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.

UPDATE

Ok, o melhor que posso dizer. A única maneira de impedir que um aplicativo mal-intencionado arruine o sistema depurando-o é.

  1. Anexar ao processo em um console separado
  2. Use o sudo duas vezes

Para que:

sudo dtruss sudo -u myusername potentially_harmful_app

Eu verifiquei isso com este programa curto:

#include <iostream>
#include <unistd.h>
int main()
{
  std::cout << "effective euid " << geteuid() << "\n";
}

Veja esta discussão para mais informações:

link

    
por Juan 23.12.2010 / 00:46

3 respostas

3

Por favor, veja minha atualização acima. Esta é uma falha de segurança ruim se eu já vi um. Uma implementação apropriada de dtruss deve descartar privilégios de qualquer programa que invocar. Tendo vários usuários em um sistema, um deles poderia atrapalhar e permitir que um programa mal escrito destrua as coisas.

    
por 23.12.2010 / 02:33
1

chmod 4755 dtrace como root

sempre que você executar o programa será executado com privilégios de root

    
por 23.12.2010 / 01:03
1

Você não pode ter os dois. O dtrace requer privilégios de root para falar com o kernel, então ele deve ser executado com root privs (setuid) ou por root.

    
por 23.12.2010 / 01:47