Automator: Ejecuta TextEdit como Root

1

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

El siguiente comando funciona en el shell:

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

Por lo que puedo 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 solicitará una contraseña.

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

The command terminated due to receipt of a signal.

y luego

TextEdit quit unexpectedly.

... que se ve serio.

Si intento lo mismo con el editor de texto Atom , funciona según lo previsto.

¿Cómo puedo hacer que TextEdit se ejecute como root?

    
pregunta Manngo 12.09.2017 - 01:54

2 respuestas

2

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

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

Y si revisa los registros de fallos, encontrará 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 espacio aislado, y ejecutarla como root anularía gran parte del propósito del sandbox. No creo que puedas encontrar la manera de ejecutarlo como root. Sin embargo, esto no es algo malo, ya que ejecutar una aplicación GUI como root es generalmente una idea terrible para la seguridad, ya que hay muchas maneras de inyectar subrepticiamente el código en una aplicación Cocoa, y si esa aplicación se ejecuta como root, puede abrir De esta forma, hay algunas vulnerabilidades de seguridad bastante graves.

Para editar archivos como /etc/hosts , recomiendo buscar otra forma:

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

  2. Use un editor de texto basado en GUI que tenga la función de solicitar su contraseña de administrador cuando sea necesario (creo que BBEdit puede hacer esto, por ejemplo)

  3. Simplemente copie el archivo /etc/hosts a otra ubicación, edítelo allí y luego use sudo para copiar el archivo modificado de nuevo en /etc .

respondido por el Charles Srstka 12.09.2017 - 04:35
1

No es realmente una respuesta a lo que preguntaste, pero como alternativa, ¿has probado Gas Mask - editor de archivos freeware Hosts.
Puede editar, almacenar múltiples versiones, & cambiar sobre la marcha.

    
respondido por el Tetsujin 12.09.2017 - 08:33

Lea otras preguntas en las etiquetas