入力を必要とするコマンドを含むスクリプトを作成し、サブシェルを作成します。

入力を必要とするコマンドを含むスクリプトを作成し、サブシェルを作成します。

次のコマンドを使用して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コマンドが必要なサブシェルを作成します(名前が正しい場合)。

  1. どのようにスクリプト呼び出しを作成してktutil終了(サブシェル終了)まで、すべてがその中にコマンドになることができますか?

  2. コマンドには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 スクリプトなしでこのコマンドを手動で追加すると、機能するため、パスワードが誤って解析されたことを意味します。

ベストアンサー1

おすすめ記事