¿Habilitar dtrace sin sudo en Mac OS X?

¿Habilitar dtrace sin sudo en Mac OS X?

¿Cómo puedo permitir que los usuarios utilicen dtrace en Mac OS X? Estoy intentando hacer el equivalente de strace en Linux y no me gusta ejecutar aplicaciones con privilegios elevados.

ACTUALIZAR

Ok, lo mejor que puedo decir. La única forma de evitar que una aplicación maligna arruine el sistema al depurarlo es.

  1. Adjuntar al proceso en una consola separada
  2. Usa sudo dos veces

De modo que:

sudo dtruss sudo -u myusername potentially_harmful_app

Lo verifiqué con este breve programa:

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

Vea esta discusión para más información:

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

Respuesta1

Por favor vea mi actualización arriba. Este es un agujero de seguridad grave si alguna vez he visto uno. Una implementación adecuada de dtruss debería eliminar los privilegios de cualquier programa que invoque. Al tener varios usuarios en un sistema, uno de ellos seguramente arruinaría esto y permitiría que un programa mal escrito arruinara las cosas.

Respuesta2

chmod 4755 dtrace como raíz

cada vez que ejecute el programa se ejecutará con privilegios de root

Respuesta3

No puedes tener ambos. dtrace requiere privilegios de root para comunicarse con el kernel, por lo que debe ejecutarse con privilegios de root (setuid) o mediante root.

información relacionada