2016-05-26 7 views
7

ktutilを使用してキータブを生成するスクリプトを作成します。スクリプトを実行しているとき、私は を使用したい[ユーザー] $のscript.shのPASSWORDスクリプトKerberos Ktutilを使用してキータブを作成する

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

からktutilパスワードを必要とするよりも、ここで私は上からPASSWORD引数を使用します。私はどのようにパスワードの引数を渡すでしょうか? GNUのbashのでは

答えて

9

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 

出力:パスワードがされるよう確保されていないシェルでからktutilする配管パスワード

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

Pythonの

 
slot KVNO Principal 
---- ---- --------------------------------------------------------------------- 
    1 1       [email protected] 
1

バージョンプロセスのリストに表示されます。

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

これが役に立ちます。複数ORGSのキータブとデフォルトのHBaseを作成するには

1

、パイプ、HDFSのkeytab同時に、あなたは私が作成した以下のスクリプトを実行することができます

#!/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 
関連する問題