Я создал группу Posix под названием Admins в моем домене OpenLDAP и добавил в нее пользователя.
Затем я добавил в свой файл slapd.conf следующее:
access to attrs=userPassword,shadowLastChange
by dn="@ADMIN@" write
by dn="cn=admin,ou=Groups,dc=xxxxxxxxx,dc=xx,dc=uk" write
by anonymous auth
by self write
by * none
access to dn.base=""
by * read
access to *
by dn="@ADMIN@" write
by dn="cn=admin,ou=Groups,dc=xxxxx,dc=xx,dc=uk" write
by * read
Затем я создал пользователя и добавил его в группу администраторов, но пользователь не получил разрешения на запись, которого я ожидал.
Я новичок в OpenLDAP и уверен, что пропустил что-то очевидное, но, похоже, я не могу найти никаких ответов на этом или других сайтах.
Заменить by dn="cn=admin,ou=Groups,dc=example,dc=com" write
с участием by group.exact="cn=admin,ou=Groups,dc=example,dc=com" write
.
Кроме того, прекратите использовать slapd.conf
и начать использовать slapd-config
. Таким образом, вам не нужно перезапускать сервер ldap каждый раз, когда вы вносите изменения.
Кроме того, если вы пытаетесь добавить / удалить запись непосредственно под базовым суффиксом, вам нужно удалить access to dn.base="" by * read
.
Получение членов posixGroup (например, установка ACL) отличается от получения их из groupOfNames.
Для этого проверьте это содержание ссылки это касается той же проблемы.
Чтобы эффективно проверить права группы, вы должны ограничить списки ACL одной строкой, например:
access to *
by set="[cn=Admins,ou=Groups,dc=xxx,dc=co,dc=uk]/memberUid & user/uid" write
by users read
by anonymous auth
Этот контроль доступа дает права записи членам группы, права чтения другим пользователям и права подключения к анонимным.
Конечно, этой строчки в целом недостаточно, но это уже другая тема.