Bu ldapadd komutu neden “Geçersiz sözdizimi” hatasıyla çıkıyor?


14

Ben openldap için çok yeni ama linux / unix ortamında son derece iyi usta. Buradaki kılavuzu kullanarak ilk test openldap ortamımı kurmaya çalışıyorum . Ayrıca burada yönetici kılavuzunun çoğunu okudum ve itiraf etmeliyim, almak için çok şey var.

Ubuntu temel kurulum kılavuzunu izleyerek şöyle bir ldif dosyası oluşturdum:

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

Ne zaman kullanarak eklemek için çalıştı:

$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif

Aşağıdaki hatayı alıyorum:

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'daki bu hatanın sonuçları, herhangi bir yararlı öneriyi netleştirmez. Burada neyi yanlış yapabilirdim?


Alan adınızda kısa çizgi yoksa ne olur? Buna neden olabilir ...
— Nathan C

@NathanC şimdi değiştirmeyi deneyecek ...
— hax0r_n_code

@NathanC aynı şey ... benim tahminim bulamıyor posixGroup. Mevcut objectClasses'leri nasıl sorgularım ?
— hax0r_n_code

@NathanC de bu /etc/ldap/slapd.d/dizine sahip değilim . Kaynaktan openldap kurdum.
— hax0r_n_code

Ben cevap için openldap yeterince tanıdık değilim ... burada başka biri olsa olabilir.
— Nathan C

Yanıtlar:


11

Sorununuz şüphesiz nisşemayı LDAP sunucunuza yüklemeniz gerektiğidir . Bunun nasıl yapılacağı, eski slapd.confyapılandırma dosyasını mı yoksa cn=configbir slapd.ddizinde barındırılan ve bir dizin tarafından desteklenen daha yeni dinamik yapılandırmayı mı kullandığınıza bağlıdır .

kullanma slapd.conf

includeAşağıdaki slapd.confsatırlara bir çizgi ekleyerek şemanızın tanımına ihtiyacınız olacaktır :

include /usr/local/etc/openldap/schema/nis.schema

Bu, nis.schemadosyanın bu yolda bulunduğunu varsayar ; değilse, yolu uygun şekilde değiştirin.

slapdYeni şemayı etkinleştirmek için yeniden başlatmanız gerekir .

kullanma slapd.d

(Mevcut yapılandırmanızla doğrudan ilgili olmasa da, bunu eksiksizlik için dahil ediyorum).

slapdDinamik cn=configyapılandırmayı kullanıyorsanız şema yüklemek için kullanırsınız ldapadd. ACL'lerinizin nasıl yapılandırıldığına bağlı olarak, komut şöyle görünebilir:

ldapadd -Y EXTERNAL -H ldapi:// -f /usr/local/etc/openldap/schema/nis.ldif

Bu, çalışmanızın slapd"eş kimlik bilgileri" kimlik doğrulamasına izin veren bir ACL'ye sahip olduğunu varsayar root. O değil işliyor varsa, bir uygun düzgün bağlama DN ve şifresini kullanarak sağlamak gerekir -Dve -W.

Bu durumda yeniden başlatma gerekmez.


Teşekkür ederim! En son sürümünü indirip kurduysam openldapneden kullanmak için yapılandırılmayayım slapd.d?
— hax0r_n_code

Yükleyici varsayılan olarak eski yapılandırma dosyasını kullanmayı tercih eder? Her durumda dokümantasyon dönüştürme talimatlarını bulabilirsiniz slapd.confiçin slapd.d.
— larsks

Bu cevap çok yardımcı oldu. Benim için çalışması için birkaç şema eklemek zorunda kaldım. Cevap için teşekkürler!
— Senthil Kumar

1
Başka bir şema değil, eksik olan nis.schema olduğunu nasıl bildiniz? Hatayı nasıl ayrıştırdınız?
— Mike Shultz

1
Hata, "posixGroup" olan cn = mühendisleri için nesne sınıfından şikayet ediyor. Bundan, nesne sınıfının hangi şemada tanımlandığını anlamak nispeten kolaydır.
— larsks


1

Ben metin editörü bazen hata veya hata ile görünmez karakter eklemek ve bu ldif dosya etkilemek çünkü file.ldifben openldap (örneğin:) şarj etmek istiyorum silme düzeltildi . Yani silin ve başka bir tane oluşturun ve her bir ifadeyi tek tek yüklemeye çalışın ve komut ile kontrol edin , hoşçakalın ve size bu konuda yardımcı olmayı umuyoruz.data.ldifvildapsearch -x -h nameofyourserver -b “dc=whateveris,dc=com”

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.