Come posso usare Automator per generare un ticket kerberos usando KINIT?

2

Devo essere in grado di generare un ticket kerberos per il mio MacBook Pro ogni volta che la macchina si riavvia. Posso eseguire manualmente KINIT con le mie credenziali per generare un ticket. Qual è il modo migliore per automatizzare tale processo?

    
posta tlatkovich 07.05.2012 - 16:34
fonte

2 risposte

2

Puoi facilmente inserire comandi di shell all'interno di un'applicazione (o servizio) di Automator usando l'azione "Esegui script di shell". Tuttavia, questo eseguirà i comandi in una shell non interattiva (per una spiegazione della differenza tra shell interattive e non interattive, vedere sezione pertinente della Guida avanzata di scripting di Bash - in parole povere, non avrai accesso al terminale per la richiesta della password, e se kinit non ne è a conoscenza, lo script si bloccherà). Ci sono due modi per aggirare questo:

  1. script Terminal.app per eseguire il comando invece di eseguirlo direttamente. In tal caso, sarà necessaria l'azione "Esegui AppleScript", contenente il seguente comando:

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

    che aprirà una nuova scheda Terminale che esegue il comando specificato.

  2. usa l'opzione kinit di --password-file e passa la password all'interno del tuo flusso di lavoro, cioè

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

    Per evitare di memorizzare la password in testo normale all'interno del flusso di lavoro, è possibile memorizzarla in modo sicuro nel portachiavi di OS X e recuperarla da lì. Sebbene possibile tramite uno script di shell (il blog di TextMate ha dettagli su come ottenerlo - be sicuro di leggere i commenti), ci sono così tanti trucchi che mi piacerebbe usare un po 'di AppleScript e l'eccellente Usable Keychain Scripting app. Una volta installato, il seguente bit di AppleScript recupererà la tua password (supponendo che il nome dell'account sia "kinit"):

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

    O avvolgilo in un comando di shell osascript , cioè

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

    oppure, mentre stai usando Automator, aggiungi un'azione AppleScript, recupera la passphrase al suo interno e passa allo script della shell.

risposta data 07.05.2012 - 18:32
fonte
2

Voglio solo sentirci dentro; non mi piaceva mettere la mia password nel portachiavi, così ho scritto un rapido script per raccogliere da un prompt utente:

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

ovviamente, probabilmente vuoi mettere il dominio anche nel tuo username. e poi, da uno script di shell puoi fare qualcosa del tipo:

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

Sarebbe bello controllare l'output dello script della shell per verificare la presenza di password errate ecc.

    
risposta data 23.06.2012 - 00:45
fonte

Leggi altre domande sui tag