Рейтинг:1

Разрешить пользователям openldap менять пароль с помощью пароля в centos, я его сломал

флаг in

Пытался сделать вышеописанное с помощью этого урока:

https://www.unixguide.net/content/openldap-allow-users-change-their-password-unix-passwd-command

Итак, я создал этот ldif:

DN: olcDatabase={2}hdb,cn=config
тип изменения: изменить
добавить: olcAccess
olcAccess: в attrs=userPassword самостоятельно напишите с помощью анонимной аутентификации с помощью dn.base="cn=ldapadm,dc=bbb,dc=local" напишите с помощью * none

добавить: olcAccess
olcAccess: для * самостоятельной записи с помощью dn.base="cn=ldapadm,dc=bbb,dc=local" записи с помощью * чтения

Запустил ldapmodify, теперь ни один пользователь не может войти в любой клиент со своим паролем, хотя они могли это сделать до того, как я запустил вышеуказанное изменение.

теперь при попытке войти говорит, что разрешение отклонено после ввода правильного пароля .... что я сломал ?? (совершенно новый для openldap)

И, поскольку это может иметь значение, вот как я подключил своих клиентов к моему серверу openldap:

yum install -y openldap-clients nss-pam-ldapd
authconfig --enableldap --enableldapauth --ldapserver=192.168.1.10 --ldapbasedn="dc=bbb,dc=local" --enablemkhomedir --update

По умолчанию, если я наберу passwd для пользователя ldap... в результате произойдет:

[ldapuser@sdss5-db ~]$ пароль
Смена пароля для пользователя ldapuser.
(текущий) Пароль LDAP: 
Новый пароль: 
Введите повторно новый пароль: 
смена пароля не удалась: недостаточный доступ
passwd: ошибка манипулирования токеном аутентификации

Хотя снова этот файл ldif выше с olcAccess сломал мой ldap, ничего не заработало (пришлось вернуть виртуальную машину обратно, прежде чем я выполнил эту команду ... в основном потому, что я новичок в ldap и не знаю, как удалять элементы и т. д. )

Вот все мои файлы cn=config:

olcDatabase={-1}интерфейс.ldif


# ФАЙЛ СОЗДАЕТСЯ АВТОМАТИЧЕСКИ - НЕ РЕДАКТИРОВАНИЕ!! Используйте ldapmodify.
# CRC32 даф543д1
DN: olcDatabase={-1}интерфейс
класс объекта: олкдатабасеконфиг
класс объекта: olcFrontendConfig
olcDatabase: {-1}интерфейс
структурныйОбъектКласс: олкдатабасеконфиг
записьUUID: 1244881e-5cf7-103b-94a5-5f5943b4315f
CreatorsName: cn=config
createTimestamp: 20210608224613Z
входCSN: 20210608224613.408737Z#000000#000#000000
modifiersName: cn=config
изменитьTimestamp: 20210608224613Z


olcDatabase={0}config.ldif

# ФАЙЛ СОЗДАЕТСЯ АВТОМАТИЧЕСКИ - НЕ РЕДАКТИРОВАНИЕ!! Используйте ldapmodify.
# CRC32 54d58ed2
DN: olcDatabase={0}config
класс объекта: олкдатабасеконфиг
olcDatabase: {0}конфигурация
olcAccess: {0}к * по dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" управляется * нет
структурныйОбъектКласс: олкдатабасеконфиг
записьUUID: 12448a9e-5cf7-103b-94a6-5f5943b4315f
CreatorsName: cn=config
createTimestamp: 20210608224613Z
входCSN: 20210608224613.408801Z#000000#000#000000
modifiersName: cn=config
изменитьTimestamp: 20210608224613Z



olcDatabase={1}monitor.ldif

# ФАЙЛ СОЗДАЕТСЯ АВТОМАТИЧЕСКИ - НЕ РЕДАКТИРОВАНИЕ!! Используйте ldapmodify.
# CRC32 3165478b
DN: olcDatabase={1}монитор
класс объекта: олкдатабасеконфиг
olcDatabase: {1}монитор
структурныйОбъектКласс: олкдатабасеконфиг
записьUUID: 12448d32-5cf7-103b-94a7-5f5943b4315f
CreatorsName: cn=config
createTimestamp: 20210608224613Z
olcAccess: {0}к * по dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al, cn=auth" прочитано dn.base="cn=ldapadm,dc=bbb,dc=local" прочитано * нет
входCSN: 20210608225001.645649Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
изменитьTimestamp: 20210608225001Z




olcDatabase={2}hdb.ldif


# ФАЙЛ СОЗДАЕТСЯ АВТОМАТИЧЕСКИ - НЕ РЕДАКТИРОВАНИЕ!! Используйте ldapmodify.
# CRC32 89413e34
DN: olcDatabase={2}hdb
класс объекта: олкдатабасеконфиг
класс объекта: олкхдбконфиг
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: экв. объектного класса, пред.
olcDbIndex: ou,cn,mail,фамилия,имя eq,pres,sub
структурныйОбъектКласс: olcHdbConfig
записьUUID: 1244907a-5cf7-103b-94a8-5f5943b4315f
CreatorsName: cn=config
createTimestamp: 20210608224613Z
olcSuffix: dc=bbb,dc=местный
olcRootDN: cn=ldapadm,dc=bbb,dc=local
olcRootPW:: e1NTSEF9QTB0dS94UjR6cy83ZEMvQUxPL21uS2RLaXZUeFNXVEg=
olcAccess: {0}to attrs=userPassword самостоятельно написать с помощью анонимной аутентификации от dn.ba
 se="cn=ldapadm,dc=bbb,dc=local" напишите * нет
входCSN: 20210702202550.687485Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
изменитьTimestamp: 20210702202550Z

Кажется, он не пишет вторую часть:

добавить: olcAccess
olcAccess: для * самостоятельной записи с помощью dn.base="cn=ldapadm,dc=unixguide,dc=net" записи с помощью * чтения

К olcDatabase={2}hdb.ldif , как показано в примере olcAccess: {1}для * самостоятельной записи с помощью dn.base="cn=ldapadm,dc=unixguide,dc=net" записи с помощью * чтения

Я предполагаю, что это то, что не работает и отключает возможность входа в систему после запуска команды. Я не уверен, почему он не отображается, хотя я не получаю ошибок, когда запускаю команду изменения с моим ldif, опубликованным выше...

Результат модификации ldap таков:

[root@openldapserver ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f passwordaccess.ldif
SASL/ВНЕШНЯЯ аутентификация запущена
Имя пользователя SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
САСЛ ССФ: 0
изменение записи "olcDatabase={2}hdb,cn=config"
Рейтинг:1
флаг dk

В DN: olcDatabase={2}hdb,cn=config вы указываете, какое правило заменить/добавить. В моей системе есть правила доступа к паролю в DN: olcDatabase={-1}интерфейс.

Убедитесь, что вы выбрали правильное правило.

флаг in
Значит ли это, что я заменяю строку dn: в этом ldiff на: `dn: olcDatabase={-1}frontend`?
Jari Turkia avatar
флаг dk
Если вы готовы снова восстановить свой LDAP, вот что я предлагаю.Разумным ходом было бы заглянуть в `/etc/openldap/slapd.d/cn=config` и посмотреть, где сейчас находятся ваши правила, а затем принять решение об изменении этого файла.
флаг in
О, я в замешательстве, я сломал ldap с помощью моей команды выше, но для восстановления я просто перешел к снимку виртуальной машины, сделанному до того, как я сделал команду, поэтому ldap работает, я просто не могу использовать функциональность passwd до сих пор ... это дает вышеуказанные ошибки. Итак, та линия, которую я пробовал, которая, как я думал, заставит ее работать... не сработала. Я покопаюсь в файле cn=config, я его почти не трогал.
Jari Turkia avatar
флаг dk
Хорошо. Системы бывают разные, поэтому критической частью будет увидеть, какие части конфигурации у вас есть в `/etc/openldap/slapd.d/cn=config` и какие из них имеют настройки для разрешений и/или паролей.
флаг in
Хорошо, я нахожусь в этой папке slapd.d/cn=config, я вижу файлы ldif. Одним из них является olcDatabase={-1}frontend.ldif, но если я просматриваю этот файл, там нет ничего о паролях. Также есть папка cn=schema с большим количеством файлов ldif в ней на уровень ниже. Это для машин Centos7
Jari Turkia avatar
флаг dk
Файл `cn=schema` будет содержать определения данных, хранящихся в вашем LDAP, и в данном случае не имеет значения. Теперь вам нужно определить, какие из файлов содержат правила доступа, и нацелить свои изменения на них.
флаг in
Обновил запись, я могу заставить ее добавить одно правило из ldif, но не другое правило без ошибок.
Jari Turkia avatar
флаг dk
Вы можете отредактировать найденный файл конфигурации с помощью текстового редактора. Перезапустите slapd, чтобы изменения вступили в силу.
флаг in
О, ничего себе, я не знал, что могу редактировать его напрямую (сказал, что не надо), но, конечно же, добавил это: olcAccess: {1}to * by self write by dn.base="cn=ldapadm,dc=unixguide,dc=net " напиши *прочитал все заработало! Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.