Назад | Перейти на главную страницу

OpenLDAP предоставляет группе доступ на запись

В нашем openldap есть несколько групп: useradmins, agt, ib, iss, itt

Группа "useradmins" всегда имела права на редактирование (запись) для всех групп. Недавно я выполнил простое «yum update», и openldap был обновлен. С тех пор (около 3 дней назад) администраторы не могут писать (добавлять или изменять пользователей). Ошибка:

Недостаточный доступ - нет доступа на запись к родительскому объекту

... или, в зависимости от моих проб / ошибок с файлом slapd.conf, иногда я просто получаю:

Недостаточный доступ

Я редактировал свой файл slapd.conf (около 500 раз), пробуя разные настройки при чтении онлайн-сообщений, документов и т. Д. Мой текущий файл slapd.conf выглядит так:

...
database        bdb
suffix          "dc=am5up,dc=com"
directory       /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber               eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
index entryCSN                          eq
index entryUUID                         eq

access to *
          by self write
          by dn="cn=admin,dc=am5up,dc=com" write
          by group/groupOfUniqueNames/uniqueMember="cn=useradmins,ou=groups,dc=am5up,dc=com" write
          by * read
rootdn    "cn=admin,dc=am5up,dc=com"
rootpw    <hashed pwd>
...

Я предполагаю, что эта строка неверна:

group/groupOfUniqueNames/uniqueMember="cn=useradmins,ou=groups,dc=am5up,dc=com" write

... но я безуспешно перепробовал десятки вариантов.

Кто-нибудь может внести какие-либо предложения?

Очень признателен.

Итак, согласно комментарию, группа выглядит следующим образом:

dn: cn = useradmins, ou = group, dc = am5up, dc = com

cn: useradmins

номер гидроузла: 10001

memberuid: mscot

объектный класс: posixGroup

memberuid: nhman

memberuid: taden

memberuid: japid

но согласно acl:

by group / groupOfUniqueNames / uniqueMember = "cn = useradmins, ou = groups, dc = am5up, dc = com" написать

В группе должны быть objectClass groupOfUniqueNames и uniqueMember (кому вы хотите предоставить доступ). Но в группе, показанной выше, их нет, поэтому теперь вы можете сделать две вещи:

  • Добавить objectClass groupOfUniqueNames и его члены uniqueMember, ACL обязательно будет работать.

ИЛИ

  • Проведя небольшое исследование, я обнаружил, что у posixGroup есть только такой синтаксис, вы можете использовать для предоставления доступа членам posixGroup. Вам нужно сделать что-то вроде:
access to *
           whatever you want
           by set="user/uid & [cn=useradmins]/memberuid" write
           by * none

Для "пользователь / uid"это будет применимо, если memberuids являются фактическими uid участников, в противном случае укажите любой атрибут, который вы используете.