¿Cómo puedo usar Automator para generar un ticket kerberos utilizando KINIT?

2

Necesito poder generar un ticket kerberos para mi MacBook Pro cada vez que la máquina se reinicie. Puedo ejecutar KINIT manualmente con mis credenciales para generar un ticket. ¿Cuál es la mejor manera de automatizar ese proceso?

    
pregunta tlatkovich 07.05.2012 - 16:34

2 respuestas

2

Puede empaquetar fácilmente comandos de shell dentro de una aplicación (o servicio) de Automator usando la acción "Ejecutar Shell Script". Sin embargo, esto ejecutará los comandos en un shell no interactivo (para obtener una explicación de la diferencia entre shells interactivos y no interactivos, consulte sección pertinente de la Guía avanzada de scripts de Bash : simplemente, no tendrá acceso al terminal para la solicitud de contraseña, y si kinit no lo sabe, su script se bloqueará). Hay dos maneras de evitar eso:

  1. script Terminal.app para ejecutar su comando en lugar de ejecutarlo directamente. En ese caso, necesitará una acción "Ejecutar AppleScript" que contenga el siguiente comando:

    tell application "Terminal" to do script "kinit <options>"
    

    que abrirá una nueva pestaña de Terminal que ejecuta el comando dado.

  2. use la opción kinit ’s --password-file y pásele la contraseña dentro de su flujo de trabajo, es decir,

    echo <password> | kinit --passwordfile=STDIN <options>
    

    Para evitar almacenar su contraseña en texto sin formato dentro del flujo de trabajo, puede guardarla de forma segura en el llavero OS X y recuperarla desde allí. Aunque es posible a través de un script de shell (el blog TextMate tiene detalles sobre cómo lograrlo - ser Asegúrese de leer los comentarios), hay tantos errores que recomiendo usar un poco de AppleScript y el excelente Usable Keychain Scripting . Una vez instalado, el siguiente bit de AppleScript recuperará su contraseña (asumiendo que el nombre de la cuenta es "kinit"):

    tell application "Usable Keychain Scripting" to get password of first generic item of current keychain whose account is "kinit"
    

    O bien envuélvalo en un comando de shell osascript , es decir,

    passphrase=$(osascript -e '<command above>')
    

    o, mientras usa Automator, agregue una acción de AppleScript, recupere la frase de contraseña que está dentro y pásela al script de shell.

respondido por el kopischke 07.05.2012 - 18:32
2

Sólo quiero entrar; No me gustó poner mi contraseña en el llavero, así que escribí un applecript rápido para recogerlo de un mensaje de usuario:

on run {input, parameters}
tell application "System Events"
    set the_username to do shell script "whoami"
    set the_password to "password"
    display dialog "Enter password" default answer "password" buttons {"OK", "Cancel"} default button "OK" with icon 2 with title "SLAC Kerberos" with hidden answer
    set the_password to text returned of the result
end tell
return {the_username, the_password}
end run

por supuesto, probablemente también quieras poner el dominio en tu nombre de usuario. y luego, desde un script de shell puedes hacer algo como:

echo $2 | kinit --password-file=STDIN $1

lo que sería bueno sería verificar la salida del script de shell para verificar las contraseñas incorrectas, etc.

    
respondido por el yee379 23.06.2012 - 00:45

Lea otras preguntas en las etiquetas