Respuestas:
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"
pico .bash_profile
, agregue alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'
, guarde el archivo y reinicie la Terminal. Ahora puede escribir sudotext
para iniciar TextEdit como root.
open -t "/etc/hosts"
por ejemplo. Con TextWrangler simplemente puede escribir edit /etc/hosts
.
sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
no funciona :(
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.
emacs
también tiene un bonito modo de conf con código de colores.
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 sudoedit
OS 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
: -W
espera a que TextEdit se cierre, por lo que sudo
sabe cuándo volver a copiar el archivo. -n
asegura 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 -t
lugar de -e
si tiene un editor de texto favorito que no sea TextEdit.
Si ya tiene un EDITOR
conjunto 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.
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 textedit
para abrir la aplicación?
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.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file
Deberia trabajar
/etc/apache2/httpd.conf
tiene permisos predeterminados 0444
. He estado intentando toda la mañana editar ese archivo (de emacs
forma remota) pero nunca pensé en verificar los permisos (del nuevo León).
sudo /Applications/Textedit.app/Contents/MacOS/TextEdit
luego simplemente abra el archivo de TextEdit