Списки управления доступом набора с практическими рекомендациями ACLs в OpenLDAP

Эта команда получит Ваш полный рабочий стол: Так используйте эту команду, каждый раз, когда Вы хотите записать разговор в скайпе (или что-либо еще)

ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg   
7
18.04.2011, 21:55
5 ответов

Процедура очень похожа на процедуру изменяющегося пароля, который я описал в другом вопросе.

Существует также два пути.

1) Редактирование файла конфигурации. Необходимо найти файл конфигурации бэкенда. Каждый ACL определяется как значение olcAccess атрибут. Синтаксис ACL идентичен как в "нормальном" slapd.conf файле, но в начале каждого ACL необходимо вставить число, которые определяют "положение" ACL в очереди ACL для проверки.

Пример запись ACL похож на это:

olcAccess: {0}to * by anonymous write

2) Второй путь: использование config база данных. Если config базе данных включают, Вы могли biind к ней с помощью клиента LDAP и редактирования olcAccess значения для каждого бэкенда.

3
27.01.2020, 20:15

Все содержание slapd.d связывается вместе во времени выполнения для генерации своего рода псевдо slapd.conf файл (что описание не является полностью точно детальным, но я больше пытаюсь объяснить понятие). Это - обычная практика в Debian, и лично во многих случаях я высоко предпочитаю его.

Создайте новый файл в slapd.d именованный acl (или подобный, Вы захотите включать пронумерованный префикс, если другие файлы будут иметь его), и поместите свои записи ACL там, затем перезапускают slapd.

Это должно сделать это.* Но предупредите, что структура ACL slapd может быть трудной для непосвященного. Легко сделать неправильную и/или непреднамеренную вещь.

*Если нет никаких ограничений последовательности (я не знаю slapd, что хорошо, таким образом, Вы самостоятельно для этого).

2
27.01.2020, 20:15
  • 1
    Это абсолютно ложно для OpenLDAP. slapd.d, ldif файл базирующаяся ldap база данных. А-ч –  Jeff Strunk 15.06.2012, 01:41
  • 2
    @JeffStrunk да, это отличается, чем я ожидал :-( –  bahamat 15.06.2012, 01:53

Я не говорю, что это - решение, но оно могло бы помочь Вам на Вашем пути :-)

Я задал подобный вопрос serverfault.

https://serverfault.com/questions/246252/openldap-rhel-6

Я никогда не получал ответ, в конце я должен был создать slapd.conf и преобразовать его в slapd dir с помощью следующих команд (обратите внимание, что это было на RHEL),

Удалите содержание/etc/openldap/slapd.d/каталога:

rm -rf /etc/openldap/slapd.d/* 

Отредактируйте свой пользовательский slapd.conf файл.

Выполненный slaptest, чтобы проверить законность конфигурационного файла и создать новый slapd.d каталог с Вашими настройками

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 

Настройте полномочия на новом каталоге, таким образом, ldap не стонет.

chown -R ldap:ldap /etc/openldap/slapd.d 

chmod -R 000 /etc/openldap/slapd.d 

chmod -R u+rwX /etc/openldap/slapd.d 

запуск Ваш сервер LDAP.

Я создал маленький сценарий для выполнения этих команд каждый раз, когда я внес изменение в slapd.conf

Отношения Andy

1
27.01.2020, 20:15

из Debian Wiki :

С версии 2.4.23-3 Конфигурация OpenLDAP была изменена на /etc/ldap/slapd.d по умолчанию.

Итак, OpenLDAP позволяет динамически настроить себя через «CN = CONFIG» дерево.

Вы можете перечитать DN в cn = config и увидеть что-то вроде этого:

sudo ldapsearch  -Y EXTERNAL -H ldapi:/// -b cn=config dn
...
# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
...

sudo ldapsearch  -Y EXTERNAL -H ldapi:/// -b cn=config 'olcDatabase={1}hdb'

# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=nodomain
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=nodomain
olcRootPW: {SSHA}_skip_
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

атрибут olcaccess - это то, что вам нужно.

Давайте добавим новые правила ACL в базу данных DC = Nodomain .

Создать LDIF-файл

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to dn.base="cn=test,dc=nodomain" by * read

Применить:

sudo ldapmodify  -Y EXTERNAL -H ldapi:/// -f /tmp/test.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"

VOILà:

sudo ldapsearch  -Y EXTERNAL -H ldapi:/// -b cn=config 'olcDatabase={1}hdb'
...
olcAccess: {3}to dn.base="cn=test,dc=nodomain" by * read
10
27.01.2020, 20:15

Создайте любого пользователя, которого хотите:

# vim ro_user_desc.ldif

dn: cn=ro_admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}o3pSzVM3HXqUY6R2VHGJkJEWlwLOUH1N

userPasswordхеш вы можете получить от slappasswd -s your_plaintext_pass. Создать этого пользователя:

# ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f ro_user_desc.ldif

Назначьте ему нужную роль:

# vim ro_access.ldif

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to dn.base="dc=example,dc=com" by dn.exact="cn=ro_admin,dc=example,dc=com" read

Мы включили список (только для чтения )доступ к полному дереву dc=example,dc=comдля пользователя, созданного выше. Правильный адрес dn: olcDatabase={1}mdb,cn=configлучше найти с помощью ответа @sOliver . Но имейте в виду, что этот пример для базы MDB OpenLdap в случаях HDB и т. д. может отличаться.

Наконец, примените его:

# ldapmodify -Y EXTERNAL -H ldapi:/// -f ro_access.ldif
1
27.01.2020, 20:15

Теги

Похожие вопросы