Ldap

從遠端伺服器執行 ldapmodify

  • October 1, 2016

我正在嘗試從遠端主機執行 ldapmodify 以修改我的 ldapmaster 上的條目。我已經在我的主機上安裝了 slapd,因為我需要 mkntpwd 二進製文件,伺服器沒有配置,我還為 ldap 工具安裝了 ldap-utils。當我從 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 中正常工作。你知道我做錯了什麼嗎?

提前致謝

我可以通過刪除 echo 命令後每行開頭的空格來解決此問題。使用 ldif 文件的問題是該文件不是空的,刪除它後,它工作正常。非常感謝

問題可以標記為已解決

引用自:https://unix.stackexchange.com/questions/313528