Страница 1 из 1

ldap и несколько простейших операций

Добавлено: 2010-06-29 15:37:35
skeletor
Начал изучать ldap. Возникли некоторые трудности на начальном этапе.
В корне есть 2 подкаталога: book и people. Нужно сделать такое:

1) в конфиге ldap'a разрешить доступ только admin'y ldap'a, юзерам book_rw, book_ro, people_ro соответственно к каталогам book, people соответствующими правами:

book_rw --> book (read/write access)
book_ro --> book (read only access)
people_rw --> people (write access)

то есть пользователь book_rw/book_ro вообще не должен иметь доступ к подкаталогу people и наоборот.

Остальным вообще запретить доступ к каталогу полностью.

2) как правильно создать юзера и назначить ему права на определённый каталог?

3) Если я правильно понял, то создав юзера в подкаталоге users, выше этого подкаталога доступ он не получит? Или нужно отдельно выставлять доступы?

Пробовал через phpldapadmin, lam но захотелось именно через консольку. В любом случае, каким способом лучше всего это делать?

Re: ldap и несколько простейших операций

Добавлено: 2010-06-29 23:51:58
Morty
пишу по памяти , так что может где-то быть нестыковка ;-)
---
1) юзеров(cn,юзерский(login/passwd)) поидее можно где угодно создавать , хоть в корне хоть в каждом OU,
думаю можно даже для "своих системных" юхеров создать отдельно OU и туда занести
2) права вписываешь в slapd.conf
3) приблизительно так
---
пользаки в своем ОУ(допустим):

Код: Выделить всё

ou=sysusers,dc=myldap,dc=lan
=>book_rw
=>book_ro
=book_rw
Тогда права раздаем так :

Код: Выделить всё

access to dn.subtree="ou=book, ...."
               by dn="cn=book_ro,ou=sysusers,dc=myldap,dc=lan" read
               by dn="cn=book_rw,ou=sysusers,dc=myldap,dc=lan" write
               by anonymous auth
               by * none
тоесть кому откуда и как, анонимам просить авториз, остальных в сад
people_rw описываеться аналогично

rootdn опысываешь как доступ ко всему

Код: Выделить всё

access to *
           by dn="cn=roodnname, ..." write
           by anonymous auth
           by * none
PS: помню была какая-то у меня проблема с этими правами советую почитать на оф документации(http://www.openldap.org/) по поводу этих прав а именно описание и в чем разница между acces to dn.subtree и access to dn.base возможно гдето понадобиться

Re: ldap и несколько простейших операций

Добавлено: 2010-07-02 10:54:31
skeletor
Спасибо частично получилось. Не получается дать права на запись. Сейчас у меня настроено так:

Код: Выделить всё

access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read

access to attrs=userPassword
    by self read
    by anonymous auth

access to dn.subtree="ou=addressbook,dc=domain,dc=lin"
    by dn="cn=book_ro,ou=people,dc=domain,dc=lin" read
    by dn="cn=book_rw,ou=people,dc=domain,dc=lin" write
    by self write
    by * auth

access to *
    by dn="cn=admin,dc=domain,dc=lin" write
    by anonymous auth
    by users read
    by * none
Но пользователь book_rw не может писать в каталог ou=addressbook,dc=domain,dc=lin. В чём может быть ошибка?

Re: ldap и несколько простейших операций

Добавлено: 2010-07-02 11:58:26
damns
skeletor писал(а):Но пользователь book_rw не может писать в каталог ou=addressbook,dc=domain,dc=lin. В чём может быть ошибка?

Код: Выделить всё

access to dn.subtree="ou=addressbook,dc=domain,dc=lin"
Права назначены на поддерево а не на ДН

Код: Выделить всё

access to dn="ou=addressbook,dc=domain,dc=lin"
Вот так будет писать

Re: ldap и несколько простейших операций

Добавлено: 2010-07-02 12:33:50
skeletor
Всё равно не пишет :( Конфиг уже несколько раз перечитывал.

Re: ldap и несколько простейших операций

Добавлено: 2010-07-02 13:16:19
skeletor
Заработало когда оставил обе конструкции. Спасибо за помощь.