비밀번호 정책 오버레이를 로드하려고 하는데 다음 오류가 발생합니다.
ldapadd -Wx -D "cn=Manager,cn=config" -f overlay.ldif
Enter LDAP Password:
adding new entry "olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config"
ldap_add: No such object (32)
matched DN: cn=config
파일 내용은 다음과 같습니다.
dn: olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config
olcOverlay: ppolicy
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcPPolicyDefault: cn=default,ou=Policies,dc=site,dc=com
olcPPolicyHashCleartext: TRUE
olcPPolicyUseLockout: FALSE
내가 찾은 로그에서:
config_add_internal: DN="olcOverlay=ppolicy,olcDatabase={0}bdb,cn=config" not child of DN="cn=config"
저는 CentOS 6.3과 openldap-servers-2.4.23-26.el6_3.2.x86_64를 사용하고 있습니다.
답변1
cn=config
OpenLDAP 데이터베이스의 일부 레코드는 숫자 접두사( 등)를 사용 {0}
합니다 {1}
. 따라서 데이터베이스의 내용을 수정하려면 cn=config
올바른 DN(고유 이름: 레코드 경로)을 사용해야 합니다. OpenLDAP에서 사용될 때 cn=config
첫 번째 olcDatabase 항목은 일반적으로 구성 데이터베이스 자체( olcDatabase={0}config,cn=config
)입니다. 내 특정 시스템에서 내 기본 데이터베이스는 olcDatabase={1}hdb,cn=config
.
수정해야 할 DN을 모르는 경우 olcDatabase
알 수 있는 유일한 방법은 해당 DN을 검색하여 결과를 확인하는 것입니다.
이 숫자(비트)는 두 가지 목적으로 {0}
사용됩니다.
- 동일한 이름을 가진 여러 항목을 가질 수 있습니다.
2개의olcDatabase=bdb
데이터베이스가 있고 동일한 DN을 가진 2개의 항목을 가질 수 없기 때문에 문제가 있을 수 있습니다. - 그들은 주문을 허용합니다.
LDAP 프로토콜은 순서에 관심이 없습니다. 그러나 주문을 허용하기 위해 RDN에 접두사를 추가할 수 있습니다{X}
. 이 특별한 경우에 데이터베이스를 주문해야 하는 이유가 무엇인지 모르겠습니다. 그러나 다른 주요 사용 사례도 있습니다cn=schema,cn=config
. 예를 들어 에서는cn=schema
스키마가 이전 스키마의 속성에 의존하는 객체 클래스를 정의할 수 있습니다. 따라서 시나리오는 순차적으로 로드되어야 합니다.
답변2
olcDatabase={0}bdb,cn=config
로 변경해야 합니다.
olcDatabase={2}bdb,cn=config