PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adressbuch auf Linux-Server: LDAP



~Gh05t~
16.03.11, 10:52
Hallo Zusammen,
ich bin gerade dabei auf meinem Linux-Home-Server ein Adressbuch zu erstellen. Kriterium ist, dass es universell einsetzbar und zentral zu nutzen ist.
Da ich ohnehin einen LDAP laufen habe, war das die erste Wahl.
Zunächst habe ich eine neue ou=people,dc=meine,dc=domain angelegt in die die Kontakte kommen sollen. Ein Testkontakt ist auch direkt in meinem Kmail-Client und Thunderbird erschienen. Problem: Das Ding ist nicht beschreibbar.

Ich habe dazu einen User in LDAP angelegt: cn=addressbookuser,ou=Users,dc=meine,dc=domain

und in olcDatabase={1}hdb,cn=config Rechte eingefügt:


olcAccess=to dn.subtree="ou=people,dc=meine,dc=domain"
by self write
by dn="cn=addressbookuser,ou=Users,dc=meine,dc=domain" write
by * break


Nun sollte ich (soweit ich das blicke) eigentlich mit dem neuen User Kontakte anlegen dürfen.


$ cat << EOF > user.ldif
dn:cn=Test User,ou=people,dc=meine,dc=domain
objectClass: top
objectClass: inetOrgPerson
cn: Test User
displayName: Test User
givenName: Test
sn: User
mobile: 123456789
l: Testhausen
mail: test@user
EOF

$ ldapadd -x -D "cn=addressbookuser,ou=Users,dc=meine,dc=domain" -W < user.ldif
Enter LDAP Password:
adding new entry "cn=Test User,ou=people,dc=meine,dc=domain"
ldap_add: Insufficient access (50)
additional info: no write access to parent
Jemand ne Idee was ich falsch mache? Bringt mich das überhaupt zum Ziel? Eignet sich LDAP hier? Ich finde kaum Informationen im Internet...

Und noch eine Frage: Kann ich den Zugriff auf das Adressbuch auch über eine Gruppenzugehörigkeit der bestehenden User in LDAP lösen? Möchte nicht das jeder Zugriff hat, aber ein weiterer Benutzer ist auch irgendwie doof.

~Gh05t~
18.03.11, 09:09
Ich glaube ich habe die Rechtevergabe grundsätzlich nicht verstanden. Da ich mein LDAP auf cn=config laufen habe, würde ich diese cn auch gerne mit meinem Admin bearbeiten können. Leider kann ich nicht mal darauf zugreifen. Hier sind mal meine Rechte in olcDatabase={1}hdb,cn=config:


olcAccess=
{0}to attrs=userPassword,shadowLastChange,sambaNTPasswor d,sambaLMPassword by dn="cn=admin,dc=meine,dc=domain" write by anonymous auth by self write by * none,
{1}to dn.base="" by * read,
{2}to * by dn="cn=admin,dc=meine,dc=domain" write write by * read,
{3}to dn.base="cn=config" by dn="cn=admin,dc=meine,dc=domain" write,
{4}to dn.subtree="ou=people,dc=meine,dc=domain" by self write by dn="cn=addressbookuser,ou=Users,dc=meine,dc=domain" write by * break

Eintrag 3 soll meinem admin rechte auf cn=config geben, der 4. den zugriff aufs Addressbuch. Was mache ich falsch? Bin ich in olcDatabase={1}hdb,cn=config falsch?

TheDarkRose
19.03.11, 09:49
der user für cn=config ist cn=admin,cn=config und das gewählte olcRootPW für cn=config

~Gh05t~
27.03.11, 13:22
So weit so schön. Aber das ist ja die Standardberechtigung. Ich nutze u.a. Webmin zur Verwaltung von LDAP, da sind Benutzerdaten in der Config hinterlegt. Ich will die nicht immer ändern wenn ich mal was in cn=config zu tun habe, auf der anderen Seite will ich cn=admin,cn=config nicht als Haupt-Admin verwenden.

Mein Problem ist aber sowieso eher Grundsätzlicher Natur: Wie kann ich Benutzern Rechte auf dem LDAP mit cn=config geben?

~Gh05t~
29.03.11, 10:58
Ok, mit etwas rumprobieren hab ich es geschafft!
Problem war die Reihenfolge in der die Regeln standen. Die Regel für * muss zum Schluss stehen, sonst werden die folgenden ignoriert:



{0}to attrs=userPassword,shadowLastChange,sambaNTPasswor d,sambaLMPassword
by dn="cn=admin,dc=meine,dc=domain" write
by anonymous auth
by self write
by * none
{1}to dn.sub="ou=people,dc=meine,dc=domain"
by self write
by dn="cn=addressbookuser,ou=Users,dc=meine,dc=domain" write
{2}to dn.base="" by * read
{3}to *
by dn="cn=admin,dc=meine,dc=domain" write
by * read

Der Zugriff auf cn=config wird in olcDatabase={0}config,cn=config geregelt, um meinem Admin Rechte zu geben habe ich olcAccess folgendermaaßen angepasst:


{0}to *
by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=ex ternal,cn=auth manage
by dn="cn=admin,dc=meine,dc=domain" manage
by * break

Vielleicht hilft es ja noch jemandem der dann nicht so viel Arbeit damit hat wie ich :rolleyes:

ThE_FiSh
01.04.11, 13:19
danke :) *restlichezeichen*