次のコマンドを使用してKerberos用のキータブを作成しました。
ktutil
=================================
add_entry -password -p <domain> -k 1 -e arcfour-hmac
add_entry -password -p <domain> -k 1 -e aes256-cts-hmac-sha1-96
list
wkt path/myKeytab.keytab
exit
==================================
ls -al path/myKeytab.keytab
klist -ekt /path/myKeytab.keytab
kinit -kt path/myKeytab.keytab <domain>
klist
パスワードをパラメータとして使用し、キータブを生成するscrottを作成したいと思います。
2つの質問があります。
ktutil
コマンドが必要なサブシェルを作成します(名前が正しい場合)。
どのようにスクリプト呼び出しを作成して
ktutil
終了(サブシェル終了)まで、すべてがその中にコマンドになることができますか?コマンドには
add_entry -password -p <domain> -k 1 -e arcfour-hmac
ユーザー入力が必要です。入力をスクリプトにどのように渡しますか?
$1 > add_entry -password -p <domain> -k 1 -e arcfour-hmac
または、私が検索した同様のトリックは機能しません。
私の研究によると、このスクリプトは次のように動作するはずです。
password="$1"
printf "%b" "add_entry -password -p <domain> -k 1 -e arcfour-hmac" | ktutil
printf "%b" "$password"
printf "%b" "add_entry -password -p <domain> -k 1 -e aes256-cts-hmac-sha1-96" | ktutil
printf "%b" "$password"
printf "%b" "list" | ktutil
printf "%b" "wkt path/myKeytab.keytab" | ktutil
printf "%b" "exit" | ktutil
ある程度は機能しますが、"add_entry -password -p <domain> -k 1 -e aes256-cts-hmac-sha1-96"
次の行のパスワードプロンプトでは値を挿入しません。printf
に変えようとしました。
password="$1"
echo "$password" | printf "%b" "add_entry -password -p <domain> -k 1 -e arcfour-hmac" | ktutil
echo "$password" | printf "%b" "add_entry -password -p <domain> -k 1 -e aes256-cts-hmac-sha1-96" | ktutil
printf "%b" "list" | ktutil
printf "%b" "wkt myKeytab.keytab" | ktutil
printf "%b" "exit" | ktutil
その後、1つのコマンドでルーティングを試みました。
password="$1"
printf "%b" "add_entry -password -p <domain> -k 1 -e arcfour-hmac\n
$password\n
add_entry -password -p <domain> -k 0 -e aes256-cts-hmac-sha1-96\n
$password\n
list\n
wkt myKeytab.keytab\n
exit" | ktutil
ls -al myKeytab.keytab
klist -ekt myKeytab.keytab
kinit -kt smyKeytab.keytab <domain>
klist
その結果は次のとおりです。
ktutil: <password>
ktutil: Unknown request "<password>". Type "?" for a request list.
これは、パスワードが誤って解析されたことを意味しますか?しかし、私が使用するとき:
password="$1"
echo "$1" | printf "%b" "add_entry -password -p <domain> -k 1 -e arcfour-hmac\n
add_entry -password -p <domain> -k 0 -e aes256-cts-hmac-sha1-96\n
list
wkt myKeytab.keytab
exit" | ktutil
ls -al myKeytab.keytab
klist -ekt myKeytab.keytab
kinit -kt smyKeytab.keytab <domain>
klist
スクリプトは完了しますが、kinitは次のように文句を言います。 kinit:Preauthentication failed while getting initial credentials
スクリプトなしでこのコマンドを手動で追加すると、機能するため、パスワードが誤って解析されたことを意味します。