Я создал группу 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 и уверен, что пропустил что-то очевидное, но, похоже, я не могу найти ответы на этом или других сайтах.
Замените на 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 каждый раз, когда вы вносите изменения.
Кроме того, если вы пытаетесь добавить / удалить запись непосредственно под базовым суффиксом, вы захотите удалить доступ к dn.base = "" путем * чтения
.
Получение членов 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
Этот контроль доступа дает права записи членам группы, права чтения другим пользователям и права подключения к анониму.
Конечно, этой строки обычно недостаточно, но это уже другая тема.