¿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.
- Adjuntar al proceso en una consola separada
- 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:
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.