リモートサーバーでldapmodifyを実行する

リモートサーバーでldapmodifyを実行する

ldapmasterのエントリを変更するために、リモートホストでldapmodifyを実行しようとしています。 mkntpwd バイナリが必要で、サーバーが構成されておらず、ldap ツールで ldap-utils もインストールしたため、ホストシステムに slapd をインストールしました。シェルでコマンドを実行すると正常に動作しますが、スクリプトでは機能しません。次のようにスクリプトでコマンドを実行しています。

.......
echo "dn: ou=xxx,dc=yyy,dc=zzz 
changetype: modify
replace: attribute
attribute: ${newValue}" \
    | ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 >/dev/null 2>&1
.......

私もldifファイルを使ってみました。

.......
(
    echo "dn: ou=xxx,dc=yyy,dc=zzz"
    echo "changetype: modify"
    echo "replace: attribute"
    echo "attribute: ${newValue}"
) >> file.ldif
ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 -f file.ldif >/dev/null 2>&1
.......

残念ながら、私のスクリプトは動作しません。私が言ったように、両方のバージョンはシェルでうまく動作します。何が間違っているのか知っていますか?

まず、ありがとうございます。

ベストアンサー1

echoコマンドの後の各行の先頭にあるスペースを削除することでこの問題を解決できました。 ldifファイルの場合、ファイルが空でないことが問題であり、削除した後は正常に動作します。ありがとう

問題は解決済みとしてマークされることがあります。

おすすめ記事