web-dev-qa-db-ja.com

キータブを作成するためのスクリプトKerberosKtutil

Ktutilを使用してキータブを生成するスクリプトを作成したいと思います。スクリプトを実行するとき、[user] $ script.shパスワードを使用したい

#script.sh
echo "addent -password -p PRINCIPAL -k 1 -e aes256-cts-hmac-sha1-96" | ktutil

Ktutilはパスワードが必要ですが、ここでは上記のPASSWORD引数を使用します。パスワード引数を渡すにはどうすればよいですか?

10
OrigamiEye

GNU bash:

user="PRINCIPAL"
pass="topsecret"

printf "%b" "addent -password -p $user -k 1 -e aes256-cts-hmac-sha1-96\n$pass\nwrite_kt $user.keytab" | ktutil

printf "%b" "read_kt $user.keytab\nlist" | ktutil

出力:

スロットKVNOプリンシパル
 ---- ---- ----------------------------- ---------------------------------------- 
 1 1 PRINCIPAL @ YOURDOMAIN 
15
Cyrus

Pythonのバージョン

https://github.com/Tagar/stuff/blob/master/keytab.py

パスワードはプロセスのリストに表示されるため、シェルのktutilへのパスワードのパイプは安全ではありません。

このPythonスクリプトはpexpectライブラリを使用してktutilと対話するだけなので、 expect を使用して純粋なシェルスクリプトと同じように実装することができます。

お役に立てれば。

2
Tagar

複数の組織のキータブとデフォルトのhbase、pipe、hdfsキータブを同時に作成するには、作成した次のスクリプトを実行します。

#!/bin/bash
read -p "Please enter space-delimited list of ORGS to create: " NEW_ORGS

clear
#echo "#################  CREATE KEYTABS  ############################"
#echo ""
kdestroy

for i in $NEW_ORGS
do
     printf "%b" "addent -password -p ${i} -k 1 -e aes256-cts-hmac-sha1-96\n${i}\nwrite_kt ${i}.keytab" | ktutil

     printf "%b" "read_kt ${i}.keytab\nlist" | ktutil

done
echo ""


if [ ! -e /home/eip/.keytabs/hbase.keytab ]
then
        printf "%b" "addent -password -p hbase -k 1 -e aes256-cts-hmac-sha1-96\nhbase\nwrite_kt hbase.keytab" | ktutil

        printf "%b" "read_kt hbase.keytab\nlist" | ktutil
fi

exit 0
2
Lokendra Jain