keytabエントリをすぐに一覧表示するようにktutilを自動化する方法は?

keytabエントリをすぐに一覧表示するようにktutilを自動化する方法は?

私はLinuxでMITを大量に使用し、ktutilコマンドショートカットとファイル名の完成が役に立つかもしれませんが、次の順序を使用するのに疲れました。

ktutil
rkt my.keytab
l

シェルで「1行」で同じ結果を得る方法はありませんか?エイリアス、関数、または他のツールを使用する必要がありますか?

答え1

私はいつもklistkeytabファイルの内容をリストするためにktutil

例 #1 - klist

$ klist -kt /etc/somedir/conf/some.keytab
Keytab name: FILE:/etc/somedir/conf/some.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   5 08/25/15 11:18:35 app/[email protected]
   5 08/25/15 11:18:35 app/[email protected]
   5 08/25/15 11:18:35 app/[email protected]
   7 08/25/15 11:18:35 app/[email protected]
...

例 #2 - プロセスの置き換え

ktutilSTDINを使用して次のようにリダイレクトすることもできます。

$ ktutil < <(echo -e "rkt /etc/somedir/conf/some.keytab\nlist")
ktutil:  rkt /etc/somedir/conf/some.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    5 app/[email protected]
   2    5 app/[email protected]
   3    5 app/[email protected]
   4    7 app/[email protected]

答え2

私はシェル関数を使用する方法を見つけ、ktutilそれがstdinのコマンドを受け入れるかもしれないと推測しました:

rkt() { echo -e "read_kt $1\nlist\nquit" | ktutil | grep -v "^ktutil:"; }

そして電話してくださいrkt my.keytab

ファイル名にスペースが含まれていない場合は機能します。

答え3

これは、2つのキータブをマージし、stdinを使用するシェルスクリプトで使用するのに役立ちます。

ktutil < <(echo -e "rkt/var/tmp/keytab/merge/krb5.keytab.server.keytab1\n
rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1\n
wkt /var/tmp/keytab/merge/krb5.keytab\n
quit")
ktutil:  rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1
ktutil:  rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1
ktutil:  wkt /var/tmp/keytab/merge/krb5.keytab
ktutil:  quit

答え4

他の答えは、一連のktutilコマンドを実行して終了する方法を提供します。

一連のコマンドを実行してから、ライン編集全体を備えたインタラクティブなセッションを取得することはより困難です。

expectディストリビューションからインストールできるプログラムのスクリプトを使用してこれを実行できます。

#!/usr/bin/env expect -f
spawn ktutil
send "read_kt [lrange $argv 0 1]\nl\n"
set CTRLZ \032
interact {
 -reset $CTRLZ {exec kill -STOP [pid]}
 \003 exit
}

myktutil場所の1つに保存しPATHて実行可能にします。chmod +x

これにより、次のことができます。

$ myktutil foo.keytab

その後、keytabファイルを読み取り、foo.keytabキーを一覧表示して対話型コマンドに移動します。

重要なタスクを実行するためにスクリプトを拡張するには、expectTcl言語に精通している必要があります。

関連情報