2 votos

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

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

2voto

Ryan Spears Puntos 1524

Puede empaquetar fácilmente comandos de shell dentro de una aplicación (o servicio) de Automator utilizando la acción "Ejecutar Shell script". Sin embargo, esto ejecutará los comandos en un shell no interactivo (para una explicación de la diferencia entre los shells interactivos y los no interactivos, vea la sección sección pertinente de la Guía avanzada de scripting de Bash - simplemente, no tendrá acceso a la terminal para la solicitud de contraseña, y si kinit no es consciente de esto, su scriptse colgará). Hay dos formas de evitarlo:

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

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

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

  2. utilice kinit 's --password-file y pásale la contraseña dentro de tu flujo de trabajo, es decir

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

    Para evitar almacenar su contraseña en texto plano dentro del flujo de trabajo, puede almacenarla de forma segura en el llavero de OS X y recuperarla desde allí. Aunque es posible a través de un shell script (el blog de TextMate tiene detalles sobre cómo conseguirlo - asegúrese de leer los comentarios), hay tantos inconvenientes que recomendaría usar un poco de AppleScript y el excelente libro de Daniel Jalkut Scripting de llavero utilizable app. Una vez instalada, el siguiente fragmento de AppleScript recuperará tu contraseña (suponiendo 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 lo envuelve en un osascript comando de shell, es decir

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

    o, como estás usando Automator, añade una acción AppleScript, recupera la frase de paso dentro de ella y pásala al shell script.

2voto

Steve-o Puntos 466

Sólo quiero comentar; no me apetecía poner mi contraseña en el llavero, así que escribí un rápido applescript para recoger de un indicador 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 quieras poner el dominio en tu nombre de usuario también. y luego, desde un shell script puedes hacer algo como:

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

lo que estaría bien sería comprobar la salida del shell script para comprobar si hay contraseñas incorrectas, etc.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X