2016-05-26 45 views
7

Tôi muốn tạo một tập lệnh sẽ tạo ra một keytab sử dụng ktutil. Khi chạy kịch bản tôi muốn sử dụng [user] $ script.sh PASSWORDScript Kerberos Ktutil để tạo keytabs

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

Ktutil hơn nhu cầu một mật khẩu, ở đây tôi muốn sử dụng đối số PASSWORD từ trên cao. Làm thế nào tôi có thể vượt qua các cuộc tranh luận mật khẩu?

Trả lời

9

Với 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 

Output:

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

Một phiên bản bằng Python

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

mật khẩu đường ống để ktutil trong vỏ không an toàn như mật khẩu sẽ được hiển thị trong danh sách các quy trình.

Vì tập lệnh Python này chỉ tương tác với ktutil bằng thư viện pexpect, nên có thể thực hiện giống như tập lệnh shell thuần túy sử dụng expect.

Hy vọng điều này sẽ hữu ích.

1

Để tạo tổ chức đã keytabs và HBase mặc định, ống nhiều, HDFS keytab cùng một lúc bạn có thể chạy các kịch bản dưới đây, mà tôi vừa tạo:

#!/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 
Các vấn đề liên quan