2 votos

Automático: Ejecutar TextEdit como root

Específicamente, quiero simplificar la edición de la hosts que requiere privilegios de root.

El siguiente comando funciona en el casco:

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

Por lo que he podido aprender, lo siguiente debería funcionar con Automator:

-- Run AppleScript
on run {input, parameters}
    do shell script ¬
        "/Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts" with administrator privileges   
end run

la clave es que with administrator privileges es el equivalente de sudo y le pedirá una contraseña.

Sin embargo, cuando ejecuto el script, obtengo el siguiente error:

The command terminated due to receipt of a signal.

y luego

TextEdit quit unexpectedly.

que parece serio.

Si intento lo mismo con Átomo editor de texto, funciona como se pretende.

¿Cómo puedo conseguir TextEdit para correr como Root?

5voto

Charles Srstka Puntos 156

En la versión actual de MacOS (10.12.6 en el momento de escribir esto), esto tampoco funcionará desde la cáscara:

$ sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit 
Password:
Illegal instruction: 4

Y si comprueban los registros del accidente, encontrarán lo siguiente:

Sandbox registration internal error: Incoming message euid:0 does not match secinitd uid:501.

Esto es por diseño; TextEdit es una aplicación de caja de arena, y ejecutarla como Root derrotaría gran parte del propósito de la caja de arena. No creo que seas capaz de encontrar una forma de hacer que funcione como Root. Sin embargo, no es algo malo, ya que ejecutar una aplicación con interfaz gráfica como Root suele ser una idea terrible para la seguridad, ya que hay muchas maneras de inyectar subrepticiamente código en una aplicación Cocoa, y si esa aplicación se ejecuta como Root, puedes abrir algunas vulnerabilidades de seguridad bastante serias de esta manera.

Para editar archivos como /etc/hosts recomiendo encontrar otra manera:

  1. Use un editor de línea de comandos como emacs , pico o vi .

  2. Usar un editor de texto basado en la interfaz gráfica de usuario que tenga la función de solicitar la contraseña de administrador cuando sea necesario (creo que BBEdit puede hacer esto, por ejemplo)

  3. Simplemente copie el /etc/hosts a otro lugar, editarlo allí, y luego usar sudo para copiar el archivo modificado de nuevo a /etc .

0 votos

En realidad, tienes razón en que ese comando tampoco funciona en el shell - sólo para Atom. La razón por la que quería utilizar TextEdit es a mis estudiantes un fácil acceso. Gracias por la respuesta, sin embargo - al menos explica por qué.

2voto

Tetsujin Puntos 23061

No es realmente una respuesta a lo que preguntaste, pero como alternativa, ¿has intentado Máscara de gas - editor de archivos Freeware Hosts.
Puede editar, almacenar múltiples versiones y activarlas sobre la marcha.

enter image description here

0 votos

Buena atrapada. He estado buscando algo como esto, pero no pude encontrar nada, por lo que me di por vencido e intenté el enfoque TextEdit.

-1voto

Don McCurdy Puntos 116

Sólo para cerrar el círculo sobre esto (porque fue uno de los primeros resultados en Google).

A continuación se explica cómo abrir cualquier archivo

terminal (bash/zsh):

sudo open /Applications/Developers\ Tools/Sublime\ Text.app /etc/hosts
sudo open "/Applications/Developers Tools/Sublime Text.app" /etc/hosts

alias - entrada:

alias edit="sudo open /Applications/Developers\ Tools/Sublime\ Text.app"

alias - uso:

edit /etc/hosts

Automator - Acción rápida (para usar en Finder):

  1. Nuevo > Acción rápida

  2. Añadir 'Ejecutar Shell script' Acción al flujo de trabajo

  3. Configurar las opciones del flujo de trabajo para que - El flujo de trabajo reciba la corriente archivos o carpetas en Buscador.app (las palabras en negrita son opciones a seleccionar)

  4. Pegue el siguiente fragmento de código en el cuadro de acción Shell script.

    open -a /Aplicaciones/Herramientas/Sublime Text.app "$@"

  5. Guardar flujo de trabajo - nombre sugerido "Abrir en Sublime Text (como root)

  6. Abra Preferencias del Sistema > Teclado > Servicios y compruebe que aparece el script y que está marcado.

  7. Vaya a Finder y haga clic con el botón derecho y encontrará la opción en el menú contextual para iniciar la entrada (el archivo seleccionado) como Root / superusuario

Espero que esto ayude a cualquiera que se encuentre con esto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X