OS X Editar un archivo usando TextEdit como root o superusuario

La edición de algunos archivos en un sistema OS X requiere permisos de superusuario o root. Normalmente, esto se logra utilizando sudo (que permite a los usuarios autorizados asumir poderes de superusuario, capa y medias opcionales) y vi. Para los no iniciados, el vi puede causar malestar intestinal y pérdida de cabello. Una alternativa es el uso de TextEdit, la aplicación de editor de texto gráfico, pero en circunstancias normales, puede abrir un archivo del sistema como hosts pero no puede guardarlo. Siguiendo los pasos de esta receta, puede editar un archivo del sistema usando TextEdit y posponer el aprendizaje de vi para otro día.


La aplicación de línea de comandos sudo permite a un usuario ejecutar otra aplicación como si fuera otro usuario. Más comúnmente (y por defecto) el otro usuario es root, el superusuario del sistema que puede hacer cualquier cosa en cualquier archivo en la caja. En este caso queremos lanzar la aplicación TextEdit.

Si nunca has buscado en una aplicación en OS X, es interesante echar un vistazo. Cuando observa la carpeta / Aplicaciones en una ventana del buscador, verá las aplicaciones enumeradas por su nombre, como TextEdit. Si enumera los archivos de la línea de comandos (ls -l / Aplicaciones), en realidad son directorios, no solo archivos, y tienen una extensión .app como TextEdit.app. Puede cambiar el directorio en uno de estos directorios y mirar alrededor. Si observa algunos, verá que hay una organización estándar en ellos y que debería hacer que se sienta un poco más cálido y posiblemente más confuso acerca de toda esta situación. Esta estructura de directorios permite que las aplicaciones tengan muchos archivos de soporte y recursos perfectamente contenidos en ellas. De interés para nosotros es la ubicación del archivo ejecutable real dentro del directorio de la aplicación. En el caso de TextEdit, la ruta a este ejecutable es /Applications/TextEdit.app/Contents/MacOS/TextEdit

Basándose en esta información, ejecutar TextEdit con sudo para editar el archivo / etc / hosts se convierte en una tarea simple (si es una línea de comandos bastante larga, lo siento):


sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit / etc / hosts

En muchos sistemas, este comando de terminal puede funcionar mejor:

sudo abierto -t / etc / hosts

Cuando ejecute este comando desde una línea de comando (en una ventana de Terminal), se le solicitará una contraseña. La contraseña correcta es la suya propia (la contraseña del usuario que inició sesión en OS X, también la contraseña que proporciona cuando realiza las actualizaciones del sistema, etc.), no la contraseña del usuario raíz (que de todos modos no existe de manera predeterminada).

Una vez que ingrese su contraseña, se abrirá una ventana de TextEdit y aparecerá el contenido del archivo que está editando. Edita al contenido de tu corazón y guarda normalmente cuando hayas terminado. Solo tenga en cuenta que la mayoría de los archivos del sistema están protegidos de la escritura por una buena razón (por ejemplo, si comete un error al editarlos, pueden suceder cosas malas), por lo tanto, corrija bajo su propio riesgo.

Actualizar:

Las funciones de control de versiones de OS X Lion evitarán que este tutorial funcione correctamente. Aunque se esté ejecutando como superusuario, el archivo dentro de textedit se bloqueará. Desde que Lion se ha desarrollado, he vuelto al antiguo modo de espera de usar nano para editar.

sudo nano / etc / hosts

Claro que nano tiene esa sensación de terminal retro, pero es un método bastante fácil para realizar cambios simples en el archivo del host.