好吧,我一整天都在殴打我的头顶,而我却无处可去。 我试图在脚本中针对OpenLDAP运行ldapmodify,以更新一系列主机的几个属性。 无论我做什么,我都会得到“服务器不愿意执行……没有全球优越的知识”。
这是我的代码,插入了虚拟值。 任何人都可以看到我做错了什么?
for sys in <system names>; do ldapmodify -x -c -h localhost -D uid=name,dc=example,dc=com -w ${password} <<EOF dn: hostname=${sys},ou=computers,location=code,dc=example,dc=com changetype: modify replace: ip ip: new.host.ip.address - replace: printer printer: new.printer.ip.address EOF done
DN与ldapsearch提供的DN完全匹配,所以我不明白这是怎么回事。 就像我说的,我只是没有看到问题,所以任何build议,欢迎。
此外,slapd.conf中的后缀是dc = example,dc = com。
这些小东西如此难以咬住你真是太神奇了。 由于这是一个脚本,我缩进了命令部分以保持编码约定。 显然,ldapmodify把这个空白解释为命令/数据的一部分,并且感到困惑。 我重新格式化它看起来像这样,现在它工作:
for sys in <system names>; do ldapmodify -x -c -h localhost -D uid=name,dc=example,dc=com -w ${password} <<EOF dn: hostname=${sys},ou=computers,location=code,dc=example,dc=com changetype: modify replace: ip ip: new.host.ip.address - replace: printer printer: new.printer.ip.address EOF done