Linux
為什麼這個 ldapadd 命令退出並出現“無效語法”錯誤?
我對 openldap 很陌生,但非常精通 linux/unix 環境。我正在嘗試使用此處的指南設置我的第一個測試 openldap 環境。我還閱讀了這裡的大部分管理指南,我不得不承認,它有很多內容需要學習。
因此,按照 ubuntu 基本設置指南,我創建了一個如下所示的 ldif 文件:
dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups dn: cn=engineers,ou=Groups,dc=example,dc=com objectClass: posixGroup cn: engineers gidNumber: 5000 dn: uid=john,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: johnldap gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john
每當我嘗試使用以下方法添加它時:
$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif
我收到以下錯誤:
adding new entry "cn=engineers,ou=Groups,dc=my-domain,dc=com" ldap_add: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax adding new entry "uid=john,ou=People,dc=my-domain,dc=com" ldap_add: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax
google 中針對此錯誤的結果沒有提供任何有用的建議。我在這裡做錯了什麼?
您的問題無疑是您需要將
nis
模式載入到 LDAP 伺服器中。如何執行此操作取決於您使用的是舊slapd.conf
配置文件還是託管在目錄中cn=config
並由slapd.d
目錄支持的較新動態配置。使用
slapd.conf
您將需要
include
在您的架構定義中slapd.conf
添加一行:include /usr/local/etc/openldap/schema/nis.schema
這假定
nis.schema
文件位於該路徑;如果不是,請適當修改路徑。您將需要重新啟動
slapd
以啟動新架構。使用
slapd.d
(為了完整起見,我將其包括在內,儘管它與您目前的配置沒有直接關係)。
slapd
如果您使用動態cn=config
配置,要將架構載入到其中,您可以使用ldapadd
. 根據 ACL 的配置方式,該命令可能如下所示:ldapadd -Y EXTERNAL -H ldapi:// -f /usr/local/etc/openldap/schema/nis.ldif
這假定您的執行
slapd
具有允許“對等憑據”身份驗證的 ACLroot
。如果這不起作用,您需要使用-D
and提供適當的綁定 DN 和密碼-W
。在這種情況下不需要重新啟動。