Я пытаюсь выполнить ldapmodify с удаленного хоста, чтобы изменить записи на моем ldapmaster. Я уже установил slapd на своем хосте, потому что мне нужен двоичный файл mkntpwd, сервер не настроен, и я также установил ldap-utils для инструментов ldap. Когда я запускаю команду из оболочки, она работает нормально, но не из моего скрипта. Я выполняю команду из скрипта следующим образом:
.......
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 проблема была в том, что файл не был пустым, после его удаления все работало нормально. Большое спасибо
Проблему можно пометить как решенную.