從遠端伺服器執行 ldapmodify

從遠端伺服器執行 ldapmodify

我正在嘗試從遠端主機執行 ldapmodify 以修改 ldapmaster 上的條目。我已經在主機上安裝了 slapd,因為我需要 mkntpwd 二進位文件,伺服器未配置,並且我還安裝了 ldap-utils 作為 ldap 工具。當我從 shell 運行該命令時,它工作正常,但不能從我的腳本運行。我正在執行腳本中的命令,如下所示:

.......
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
.......

不幸的是,我的腳本既沒有也沒有工作。正如我所說,兩個版本都可以在 shell 中正常運作。你知道我做錯了什麼嗎?

先謝謝了

答案1

我可以透過刪除 echo 命令後面每行行開頭的空格來解決此問題。對於 ldif 文件,問題是該文件不為空,刪除後,它工作正常。多謝

問題可以標記為已解決

相關內容