Pregunta

Entonces, si hago un programa Suid Root en mi Mac, y ese programa ejecuta Exec en /bin /sh, el shell no es root, mientras que si hago lo mismo en Linux, el shell es raíz. ¿Mac no propaga los permisos de la misma manera que lo hace Linux? ¿O hay algo diferente con los bits de Suid? Entiendo que los programas con Root Suid se ejecutan con privilegios de raíz. Y dado que un shell raíz que llama /bin /sh creará otro shell raíz, ¿no debería un programa de raíz Suid que llama a Exec on /bin /sh crear un shell raíz?

¿Fue útil?

Solución

Todos los procesos tienen múltiples UID (el UID real, efectivo y guardado, como mínimo). La ejecución de un binario setuid solo afecta a los UID efectivos y guardados, no el UID "real", como resultado, un binario setUid "sabrá" de qué UID se ejecutó y puede volver a ese UID. En este caso, la implementación bash de /bin/sh regresa automáticamente a su UID real cuando se ejecuta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top