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.