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.

  • AppleScript do shell no funcionará en el directory de soporte de aplicaciones
  • Reemploop de Hardware Growler?
  • Enviar imágenes automáticamente por correo electrónico a una dirección de correo electrónico específica
  • Un método "do shell script … with administrator privileges" está dando el siguiente error:

    enter image description here

  • ¿Cómo puedo reproducir un file midi desde la terminal?
  • Carpeta de documentos no visible en Finder en macOS
  • Use rsync para copyr automáticamente un file a otra carpeta
  • ¿Hay alguna manera en Terminal para resaltar la fila debajo del cursor?
  • Acceda al directory de aplicaciones en Terminal
  • ¿Por qué mis utilidades de command-line se ejecutan tan lentamente en mi Mac?
  • 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).