Пытался сделать вышеописанное с помощью этого урока:
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"