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

ACL - Администратор поддерева должен иметь возможность изменять пароль, а также сами пользователи

dn: olcDatabase={1}hdb,cn=config
objectclass: olcDatabaseConfig
objectclass: olcHdbConfig
olcaccess: {0}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none
olcaccess: {1}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write by * none
olcaccess: {2}to dn.base="" by * read
olcaccess: {3}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Я застрял в понимании ACL-Order. Пользователи поддерево и dn: cn = subadmin, dc = domain, dc = tld должны иметь возможность изменять свои собственные пароли, но они не соответствуют этому набору правил, как и subtree-admin, но администратор поддерева может писать новые dn. Если я удалю ACL, {0} пользователи могут снова изменить это, но мне нужен поддерево-админ с доступом на запись для каждого поддерева.

С уважением,

Maik

Порядок строк ACL имеет значение.

olcaccess: {0}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none olcaccess: {1}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write by * none olcaccess: {2}to dn.base="" by * read olcaccess: {3}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Вы можете избавиться от {2}, потому что он описан в {3}, и вам нужно поменять местами {1} и {0}. Это потому, что атрибуты являются частью поддерева, и вы сообщили LDAP, что поддерево доступно для чтения только пользователям. Пытаться:

olcaccess: {0}to attrs=userPassword,shadowLastChange by self write by users write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write olcaccess: {1}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none olcaccess: {2}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Вам также не нужен by * none, он подразумевается.

Конечно, я не пробовал это, так как у меня вообще проблемы с редактированием моей конфигурации ... не могли бы вы взглянуть на:

Сбой сценария сборки LDAP на openLDAP-2.4.31 (ldapmodify -Y EXTERNAL -H ldapi: ///)

для меня?