Pasar una contraseña a una aplicación de Automator

He escrito una aplicación Automator con el siguiente script de shell para abrir una connection FTP en mi sistema:

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist osascript -e 'tell app "Finder" to display alert "SFTP Opened"' 

Esto funciona exactamente como se esperaba, excepto que el command sudo necesita una contraseña. Cuando se ejecuta el mismo command en la Terminal, me pide una contraseña, pero cuando se ejecuta como una aplicación Automator, no me solicita ninguna input. ¿Hay alguna forma de pasar la contraseña de forma programática a este sudo dentro del script de Automator? Sé que esto no es una práctica segura, pero aún quiero hacerlo, ya que mi sistema es razonablemente seguro y no está tocado por nadie más que yo.

Un método "do shell script … with administrator privileges" está dando el siguiente error:

enter image description here

  • ¿Cómo puedo download todos los files MP3 de un website?
  • OS X Terminal "debe tener" utilidades
  • ¿Cuáles son las alternativas de Visor?
  • ¿Cómo elimino / etc / nologin?
  • ¿Hay alguna manera de save las preferences de Mac OS X en un file de shell?
  • ¿Qué significa el icono de key cuando escribo una contraseña en la terminal?
  • Eliminar caracteres de una cadena a través de Terminal
  • No se pueden ver los files ocultos con el usuario estándar
  • 2 Solutions collect form web for “Pasar una contraseña a una aplicación de Automator”

    AppleScript debería permitirte hacer esto usando with administrator privileges :

     osascript -e 'do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges' 

    Esto no pasa la contraseña, pero la solicita con un indicador estándar OS X:

    Puede usar esto en su flujo de trabajo de Automator en una de las dos forms siguientes:

    esperar

    En su lugar, podría usar una herramienta como expect para guiar la interacción con sudo . expect está diseñado para esta situación.

    esperar – dialog progtwigdo con progtwigs interactivos

    El siguiente script de shell puede ser suficiente para sus dos commands:

     #!/usr/bin/expect -f spawn sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist send "my-secret-password\n" 

    AppleScript y con privilegios de administrador

    Un enfoque alternativo es utilizar el command de script do shell de AppleScript. El command ofrece una opción de privilegios de administrador . La Nota técnica 2065 de Apple cubre el script de shell en detalle.

    eco

    Otros enfoques comunes para este problema incluyen el uso de echo para pasar la contraseña a sudo con una tubería. Esta respuesta de StackOverflow discute este y otros enfoques relacionados, ¿Cómo proporcionar la contraseña a un command que solicita uno en bash?

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).