PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba PDC mit SuSE 8.1, LDAP, smbldap-tools



MrIch
30.10.02, 08:43
Hallo!

Zur Zeit arbeite ich an einer Lösung den Samba pdc mit ldap unter SuSE 8.1 zum Laufen zu bringen.

Bisher hat auch alles recht gut geklappt, doch nun stoße ich auf diese Meldung beim User / Computer anlegen:

c130230:~ # smbldap-useradd.pl -w testpc
ldapadd: update failed: uid=testpc$,ou=Computers,dc=stua-lp,dc=nrw,dc=de
ldap_add: Object class violation (65)
additional info: no structural object classes provided
/usr/local/sbin/smbldap-useradd.pl: error while adding posix account to machine testpc$

c130230:~ # smbldap-useradd.pl -a testuser
ldapmodify: update failed: uid=testuser,ou=Users,dc=stua-lp,dc=nrw,dc=de
ldap_modify: Object class violation (65)
additional info: invalid structural object class chain (inetOrgPerson/sambaAccount)
/usr/local/sbin/smbldap-useradd.pl: error while adding samba account to posix user testuser

c130230:~ # smbldap-useradd.pl testuser1
einen norrmalen User kann ich ohne Probleme anlegen, s.o.

c130230:/etc/openldap # cat slapd.conf | grep -v "#"

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema

database ldbm
suffix "dc=stua-lp,dc=nrw,dc=de"
rootdn "cn=Manager,dc=stua-lp,dc=nrw,dc=de"

rootpw {SSHA}EJ22ZZAElGEBgq42kzNV32462Sld4u1h

directory /var/lib/ldap

index objectClass eq

Hat jemand eine Idee?

mamue
30.10.02, 08:54
Seit ldapv3 (openldap 2.1.x) muss jede Objekt genau einer Strukturelle Klasse angehören.
Zum Beispiel account.
Wenn Deine Maschine also nur posixAccount und sambaAccount angehört, genügt das nicht.
Als Patch habe ich 'objectclass: account' allen Eiträgen hinzugefügt.

Das hätte auch schon vorher in ldapv2 so sein sollen, wurde aber nicht so streng gesehen.

mamue

MrIch
30.10.02, 09:26
und wie mache ich das? ( bin leider nicht so der ldap freak :( )

Ich möchte ja die smbldap-tools weiterhin nutzen können!

Zeilen an 274 der smbldap-useradd.pl:


my $tmpldif =
"dn: uid=$userName,$usersdn
changetype: modify
objectClass: inetOrgPerson
objectclass: posixAccount
objectClass: sambaAccount
pwdLastSet: 0
logonTime: 0
logoffTime: 2147483647
kickoffTime: 2147483647
pwdCanChange: $valpwdcanchange
pwdMustChange: $valpwdmustchange
displayName: $_userGecos
acctFlags: $valacctflags
rid: $userRid

";


Ich hatte einfach mal versucht objectclass: account hinzuzufügen, doch der Fehler ist der selbe! :(

MrIch
30.10.02, 12:09
habe nun die Lösung, man muss das aktuelle samba schema aus dem cvs nehmen!!!

MrIch
30.10.02, 13:40
da habe ich mich doch zu früh gefreut:
Man kann immer noch keine Computer anlegen!

c130230:~ # smbldap-useradd.pl -w testpc
About to create machine testpc$:
trying to create a posix machine
ldapadd: update failed: uid=testpc$,ou=Computers,dc=stua-lp,dc=nrw,dc=de
ldap_add: Object class violation (65)
additional info: no structural object classes provided
/usr/local/sbin/smbldap-useradd.pl: error while adding posix account to machine testpc$

er hat also keine structual object class, doch was soll ich nun mache ein schema dreck erstellen was kind structual ist nur damit man so ein dummen Computer hinzufügen kann?

mamue
31.10.02, 13:28
Folgender massen könnte Dein Maschinen-ldif aussehen:

dn: cn=memmert$,dc=bbs1-emden,dc=schule
objectclass: posixAccount
objectclass: account
cn: memmert$
uid: memmert$
uidNumber: 10109
gidNumber: 502
homeDirectory: /home/memmert
loginShell: /bin/false
description: machine

mit
ldapadd -D cn="ldapadmin-Name","base-uri" -x -w "passwd" -f machine.ldif
den Rechner eintragen, danach mit
smbpasswd -a -m $machine "maschinen-passwd"
samba ein paar Einträge hinzufügen lassen.
Daran denken, die richtige version von smbpasswd zu nehmen, wenn man sich seine eigene gebaut hat!

Das klappt garantiert.

mamue