LDAP-Server funktioniert nicht unter SuSE-9.1
Hi@all, ich versuche nun schon seit geraumer Zeit einen LDAP-Server unter SuSE-9.1 zum laufen zu bewegen. Hierzu habe ich die Pakete: - ldapcpplib - openldap2 - nss_ldap - openldap2-client - pam_ldap - yast2-ldap - yast2-ldap-client installiert und in die Datei /etc/openldap/slapd.conf wie folgt erstellt: include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/samba3.schema pidfile /var/run/slapd/run/slapd.pid argsfile /var/run/slapd/run/slapd.args modulepath /usr/lib/openldap/modules access to dn.base="" by * read access to dn.base="cn=Subschema" by * read access to * by self write by users read by anonymous auth database bdb checkpoint 1024 5 cachesize 10000 suffix "dc=kundennetz" rootdn "cn=root,dc=kundennetz" rootpw {SSHA}QK/zTnNOx0n90FA/7HvhzCbBoxwdnSEj directory /var/lib/ldap index objectClass eq Anschliessend habe ich den LDAP-Server gestartet und wollte das Hauptobjekt über die Datei base.ldif hinzufügen. In der Datei base.ldif steht lediglich: dn: dc=kundennetz objectClass: top objectClass: dcObject o: kundennetz Wenn ich anschliessend den Inhalt von base.ldif mit dem Befehl: ldapadd -x -W -D "cn=root,dc=kundennetz" -f base.ldif in die Datenbank zu schreiben möchte erhalte ich nach Eingabe des entsprechenden Passwortes lediglich die Meldung: adding new entry "dc=kundennetz" ldapadd: update failt: dc=kundennetz ldap_add: Object class violation (65) additional info: no structural object class provided Was habe ich falsch gemacht?
Am Dienstag, 11. Mai 2004 17:34 schrieb Sven Gehr:
ich versuche nun schon seit geraumer Zeit einen LDAP-Server unter SuSE-9.1 zum laufen zu bewegen. Hierzu habe ich die Pakete:
Anschliessend habe ich den LDAP-Server gestartet und wollte das Hauptobjekt über die Datei base.ldif hinzufügen. In der Datei base.ldif steht lediglich:
dn: dc=kundennetz objectClass: top objectClass: dcObject o: kundennetz
Wenn ich anschliessend den Inhalt von base.ldif mit dem Befehl:
ldapadd -x -W -D "cn=root,dc=kundennetz" -f base.ldif
in die Datenbank zu schreiben möchte erhalte ich nach Eingabe des entsprechenden Passwortes lediglich die Meldung:
adding new entry "dc=kundennetz" ldapadd: update failt: dc=kundennetz ldap_add: Object class violation (65) additional info: no structural object class provided
Er sagt ja eigentlich schon. Jedes Objekt muss von einer Strukturellen Klasse vererbt worden sein. Und da ist keine angegeben. Da du "o" verwenden möchtest, würde sich "organization" anbieten. Ausserdem musst Du noch den ersten Wert aus dem "dn" in dem Objekt mit angeben: dn: dc=kundennetz objectClass: top objectClass: organization objectClass: dcObject dc: kundennetz o: kundennetz Sollte funktionieren. Btw, den ersten Eintrag der Datenbank würde ich im ungestarteten Zustand mit slapadd einfügen. # slapadd -vl base.ldif -- Andreas
Hallo zusammen, Andreas Winkelmann:
schrieb Sven Gehr:
Anschliessend habe ich den LDAP-Server gestartet und wollte das Hauptobjekt über die Datei base.ldif hinzufügen. In der Datei base.ldif steht lediglich:
dn: dc=kundennetz objectClass: top objectClass: dcObject o: kundennetz
Wenn ich anschliessend den Inhalt von base.ldif mit dem Befehl:
ldapadd -x -W -D "cn=root,dc=kundennetz" -f base.ldif
in die Datenbank zu schreiben möchte erhalte ich nach Eingabe des entsprechenden Passwortes lediglich die Meldung:
adding new entry "dc=kundennetz" ldapadd: update failt: dc=kundennetz ldap_add: Object class violation (65) additional info: no structural object class provided
Er sagt ja eigentlich schon. Jedes Objekt muss von einer Strukturellen Klasse vererbt worden sein. Und da ist keine angegeben. Da du "o" verwenden möchtest, würde sich "organization" anbieten. Ausserdem musst Du noch den ersten Wert aus dem "dn" in dem Objekt mit angeben:
dn: dc=kundennetz objectClass: top objectClass: organization objectClass: dcObject dc: kundennetz o: kundennetz
Ok das hat schoneinmal funktioniert. Ich habe nun eine base.ldif mit dem Inhalt: dn: dc=kundennetz objectClass: top objektClass: organization onjectClass: dcObject dc: kundennetz o: kundennetz dn: cn=root,dc=kundennetz objectClass: top objectClass: organizationalRole cn: root angelegt und mit o.g. Befehl in den LDAP geschrieben. Die weitere Vorgenensweise ist jetzt eher Samba spetifisch. Aus diesem Grund schreibe ich eine neue Naricht. Viele Dank & Gruß Sven
participants (2)
-
Andreas Winkelmann
-
Sven Gehr