¿Cómo abro un archivo como root en TextEdit en Lion?

13

¿Cómo abro un archivo como root, en TextEdit? He intentado 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 hay diferencia.

Znarkus
fuente

Respuestas:

14

Puede abrir una instancia de textedit como root 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 hacerlo desde la línea de comandos:

sudo su - root -c "open -e /etc/apache2/httpd.conf"
Tyr
fuente
Gracias, funcionó! sudo /Applications/Textedit.app/Contents/MacOS/TextEditluego simplemente abra el archivo de TextEdit
Znarkus
Si no desea escribir eso cada vez que puede crear un alias yendo a su directorio de inicio en la Terminal pico .bash_profile, agregue alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', guarde el archivo y reinicie la Terminal. Ahora puede escribir sudotextpara iniciar TextEdit como root.
webbiedave
Como señalaron otras respuestas, para hacerlo en 1 línea, la única opción real es tener un editor de terceros que lo admita. Luego solo escribe open -t "/etc/hosts"por ejemplo. Con TextWrangler simplemente puede escribir edit /etc/hosts.
cregox
2
¡Qué experiencia de usuario horrible! ¿No hay una manera más fácil?
Marc
2
Bueno, en mi Yosemite 10.10.2 sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"no funciona :(
Henrique de Sousa
8

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


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

Gordon Davisson
fuente
emacstambién tiene un bonito modo de conf con código de colores.
msanford
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 East
@ Simon: Parece que tiene la versión de TextWrangler de la 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 tienda de aplicaciones; ¡así que bótelo y obtenga la versión directa!
Gordon Davisson el
¿Qué pasa si estás en una Mac extranjera sin internet? La solución aceptada de 2 líneas de terminales de hackeo es en general aún mejor. Pero para el uso práctico del día a día, ¡voy con terceros todo el camino! :-)
cregox
6

Aquí hay una manera 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 lo hace, realiza una copia temporal del archivo con permiso de escritura para el usuario actual, invoca un editor en él en la forma habitual de Unix y luego lo copia de nuevo.

Las opciones para open: -Wespera a que TextEdit se cierre, 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 no desee cerrar. También puede sustituir en -tlugar 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 comandos con capacidad de espera (como TextMate o BBEdit), entonces no necesita ninguno de estos trucos y puede usarlo sudo -e <file>directamente.

Kevin Reid
fuente
2

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

Por supuesto, las aplicaciones pueden usar la API para solicitar autenticación al sistema y abrir el cuadro de diálogo que espera cuando se le solicita un usuario administrador y una contraseña. 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 intentado usar sudo open -a texteditpara abrir la aplicación?

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

Deberia trabajar

Gio
fuente
De acuerdo, ¿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.
Znarkus
1
Las cosas han cambiado en Lion, supongo que es el sandboxing
Paul Eccles
El punto es que el archivo que está intentando abrir no se puede escribir en la raíz debido a su permiso. Sería lo mismo para uno de sus archivos (en realidad es el mismo, excepto por el hecho de que TextEdit es "inteligente" para los archivos de los Usuarios, por lo que cambia el permiso preguntándole).
Gio
@Gio De hecho, se debe al sandboxing de Lion: /etc/apache2/httpd.conftiene permisos predeterminados 0444. He estado intentando toda la mañana editar ese archivo (de emacsforma remota) pero nunca pensé en verificar los permisos (del nuevo León).
msanford
-5
sudo nano /etc/hosts 

trabaja para Lion

Bektur
fuente
2
La pregunta es sobre TextEdit, no nano.
gosmond