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
  • ¿Llenar las inputs de SecurityAgent si existen?
  • Ordenar Stickies por escritorio
  • Reemploop de Hardware Growler?
  • Enviar imágenes automáticamente por correo electrónico a una dirección de correo electrónico específica
  • Crear un service de Automator para agregar posts de correo electrónico a Reminders.app
  • Un método "do shell script … with administrator privileges" está dando el siguiente error:

    enter image description here

  • MacOS Sierra no parece recordar las keys SSH entre reinicios
  • imagemgick convierte jpeg a pdf gira incluso páginas 180 °
  • Crear una estructura de carpeta pnetworkingeterminada e insert la date actual en el terminal por un solo command?
  • ¿Cambiando la apariencia del Dock de 3D a 2D?
  • ¿Cómo puedo abrir aplicaciones en un tamaño de window específico juntos?
  • Después de escribir sudo, ya no puedo autocomplete commands presionando Tab
  • 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).