Я новичок в 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
имеет ACL, разрешающую аутентификацию "одноранговых учетных данных" для root
. Если это не сработает, вам нужно будет предоставить соответствующий DN привязки и пароль, используя -D
и -W
.
В этом случае перезагрузка не требуется.
Я исправляю это, удаляя file.ldif
что я хочу зарядить в openldap (например: data.ldif
) потому что текстовый редактор vi
иногда вставляйте невидимый символ из-за ошибки или ошибки, и это влияет на ваш файл ldif. Так что удалите его, и вы создадите еще один и попытаетесь загрузить каждый оператор один за другим и проверьте с помощью команды ldapsearch -x -h nameofyourserver -b “dc=whateveris,dc=com”
, до свидания, и я надеюсь помочь вам в этом.
Недавно я столкнулся с этой проблемой, следуя Руководство по серверу Ubuntu OpenLDAP. Решил это, удалив все конечные пробелы из моих строк.