¿Cómo abro un archivo como raíz en TextEdit en Lion?

¿Cómo abro un archivo como raíz, en TextEdit? Probé estos comandos como root, pero TextEdit siempre dice que está bloqueado:

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

Y por supuesto sudo !!no hace ninguna diferencia.

Respuestas (6)

Puede abrir una instancia de edición de texto como raíz ingresando la ruta completa al ejecutable real:

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

Una vez que su instancia raíz esté abierta, puede buscar el archivo que necesita o hacer esto desde la línea de comando:

sudo su - root -c "open -e /etc/apache2/httpd.conf"
¡Gracias, funcionó! sudo /Applications/Textedit.app/Contents/MacOS/TextEditluego simplemente abra el archivo desde TextEdit
Si no desea escribir eso cada vez que puede crear un alias yendo a su directorio de inicio en Terminal, luego pico .bash_profile, agregue alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', guarde el archivo, reinicie Terminal. Ahora puede simplemente escribir sudotextpara iniciar TextEdit como root.
Como señalaron otras respuestas, para hacerlo en 1 trazador de líneas, la única opción real es tener un editor de terceros que lo admita. Entonces simplemente escriba open -t "/etc/hosts"por ejemplo. Con TextWrangler simplemente puede escribir edit /etc/hosts.
¡Qué horrible experiencia de usuario! ¿No hay una manera más fácil?
¡Por qué diablos me han hecho tan difícil hacer las cosas, maldita sea!
Bueno, en mi Yosemite 10.10.2 sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"no funciona :(
Incluso ejecutando textedit como root, "No es el propietario del archivo y no tiene permiso para escribir en él". El mac es demasiado inteligente para su propio bien. Detecta que en realidad no eres root y se niega paternalmente a permitirte editarlo.
Si no funciona porque tiene una versión más nueva de MacOS, intente:sudo -b "/System/Applications/TextEdit.app/Contents/MacOS/TextEdit"

BBEdit es la herramienta gratuita para hacer esto en 2019 y reemplaza todas las funciones de TextErangler y puede descargarlo desde App Store y el sitio web del desarrollador.


TextEdit no es realmente la herramienta adecuada para editar archivos de configuración; en su lugar, use TextWrangler . Es gratis, tiene la capacidad incorporada para editar archivos con acceso raíz desde una cuenta de administrador, así como para abrir archivos y directorios invisibles, editar fácilmente archivos a través de SFTP, etc.

emacstambién tiene un buen modo de configuración codificado por colores.
Esto no parece funcionar para mí en Mountain Lion. Recibo un error al intentar guardar los archivos de configuración del sistema en TextWrangler. ¿Ha cambiado esto?
@Simon: Parece que tiene la versión de TextWrangler de App Store, en lugar de la descarga directa de barebones.com . Si es así, se han eliminado varias funciones (incluida esta) para cumplir con las políticas de seguridad de la App Store; ¡así que descárguelo y obtenga la versión directa en su lugar!
¿Qué pasa si estás en una Mac extranjera sin Internet? La solución aceptada de 2 líneas de terminal de piratería sigue siendo generalmente mejor. Pero para el uso práctico del día a día, ¡voy con terceros hasta el final! :-)

Aquí hay una forma de evitar ejecutar TextEdit como root:

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

Deberá salir de la copia de TextEdit después de editar el archivo.

sudo -e, a veces conocido como sudoeditOS X, pero no en OS X, hace una copia temporal del archivo con permiso de escritura para el usuario actual, invoca un editor en él al estilo habitual de Unix y luego lo vuelve a copiar.

Las opciones para open: -Wespera a que se cierre TextEdit, por lo que sudosabe cuándo volver a copiar el archivo. -nasegura que está esperando en una instancia separada de TextEdit, no una que ya tenga abierta y que quizás no desee cerrar. También puede sustituir -ten lugar de -esi tiene un editor de texto favorito que no sea TextEdit.

Si ya tiene un EDITORconjunto de variables para usar un editor gráfico con su propia herramienta de línea de comando con capacidad de espera (como TextMate o BBEdit), entonces no necesita ninguno de estos trucos y puede usarlo sudo -e <file>directamente.

Dado que el usuario raíz está deshabilitado, la única forma de obligar a una aplicación OS X arbitraria a tener permisos de raíz es habilitar la raíz e iniciar sesión como raíz.

Por supuesto, las aplicaciones pueden usar la API para solicitar la autenticación del sistema y mostrar el cuadro de diálogo que espera cuando se le solicite un usuario y una contraseña de administrador. TextEdit no tiene esa función, por lo que debe evitar los permisos de archivo antes y después de abrir y escribir los archivos deseados.

¿Has probado a usar sudo open -a texteditpara abrir la aplicación?

¿Tiene sugerencias sobre aplicaciones que tienen esa funcionalidad? Preferiblemente gratis :)
Esto no es del todo exacto. En Terminal.app, corro sudo su -para iniciar un shell como root y luego puedo ejecutarlo open "/Applications/Textedit.app/Contents/MacOS/TextEdit"correctamente. No tengo habilitado el usuario root ni he iniciado sesión como usuario root.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Deberia trabajar

Bien, ¿entonces no es posible iniciar TextEdit como root? Realmente me gustaría evitar la molestia adicional de cambiar los permisos de un lado a otro.
Las cosas han cambiado en Lion, supongo que es el sandboxing.
El punto es que el archivo que está tratando de abrir no se puede escribir en la raíz debido a su permiso. Sería lo mismo para uno de tus archivos (en realidad es lo mismo, excepto por el hecho de que TextEdit es "inteligente" para los archivos de los Usuarios, por lo que cambia el permiso preguntándote).
@Gio De hecho, se debe al sandboxing de Lion: /etc/apache2/httpd.conftiene permisos predeterminados 0444. Estuve toda la mañana tratando de editar ese archivo (de emacsforma remota) pero nunca pensé en verificar los permisos (del nuevo León).
sudo nano /etc/hosts 

trabaja para león

La pregunta es sobre TextEdit, no nano.