Aunque es posible iniciar una aplicación gráfica como usuario root, no se recomienda. Puede funcionar la mayoría de las veces, pero evite confiar en este comportamiento.
Evitar la raíz
No se recomienda ejecutar una aplicación como root porque aumenta dramáticamente el riesgo de causar problemas con tu Mac. El uso de la raíz debe limitarse al código más pequeño posible con controles estrictos en el lugar.
Las aplicaciones se están moviendo cada vez más hacia un diseño fragmentado para evitar exponer demasiada energía al código que no lo requiere.
- Un error en el código que se ejecuta con permisos de raíz es un riesgo de seguridad.
- Un error en el código sin permisos de root es mucho menos capaz de causar problemas graves.
Hay casos de borde, pero estos son cada vez más raros. La introducción de sandboxing y XPC son parte de los esfuerzos de Apple por reducir la necesidad de proporcionar autoridad excesiva a los procesos que se ejecutan en OS X.
Herramientas de línea de comandos
Si necesita trabajar con archivos como usuario root, use herramientas de línea de comandos como vim
, emacs
o nano
. Estas herramientas no se basan en el WindowServer y se pueden lanzar como root dentro de otra sesión de usuario:
sudo nano <path to edit>
Herramientas gráficas
Si prefieres editores gráficos, utiliza un editor que funcione con el diseño de Mac OS X. BBEdit es una excelente editor que manejará correctamente la edición de archivos de propiedad raíz .
Cuando edita un archivo de propiedad raíz con BBEdit, se usa un segundo proceso para cerrar la brecha de permisos entre usted y el propietario del archivo. Este proceso pasa por las rutas autorizadas de Apple y, por lo tanto, garantiza una experiencia predecible, con suerte en varias versiones principales de Mac OS X.
¿Por qué? Límites de WindowServer y alcance del diseño
Hay problemas técnicos sutiles con el lanzamiento de una aplicación gráfica en otra sesión de usuario.
Los problemas técnicos subyacentes provienen de un usuario que desea iniciar un proceso gráfico dentro de la sesión de otro usuario. El WindowServer de Mac OS X nunca fue diseñado con este objetivo. Las sesiones de usuario son extremadamente difíciles de romper incluso como usuario root, todo por razones de seguridad deseables.
Apple ha mejorado dramáticamente el diseño de WindowServer en las últimas versiones principales de Mac OS X. Ahora es posible que múltiples usuarios hayan iniciado sesión en diferentes sesiones gráficas en una Mac a través de Compartir pantalla. Esta mejora aparentemente simple se basó en una gran cantidad de esfuerzo detrás de escena por parte de los ingenieros de Apple.
Sin embargo, es poco probable que Apple proporcione una manera fácil de lanzar aplicaciones de forma cruzada como usuarios diferentes desde una sola sesión gráfica de usuario. ¿Cómo beneficiaría esto a sus clientes?
Si desea explorar más este tema, busque preguntas que incluyan launchctl
y ejecute aplicaciones en otras sesiones de usuario activas.