RHEL 6에서 OpenLDAP를 구성했는데 구성 디렉터리를 다시 작성하기 위해 다음 명령을 실행한 것 같습니다. 동의합니다. 하지만 제 질문은 서버 비밀번호를 변경하려는 경우 구성을 변경할 때마다 전체 프로세스를 거쳐야 합니까?입니다. RHEL6 방법을 사용하여 slapd 구성을 구축한 후 해당 구성을 변경할 수 있는 방법이 있습니까?
내 제안은 다음과 같습니다온라인에서 찾았어요.
이 예에서는 이전 slapd 구성에서 변환할 파일이 /etc/openldap/slapd.conf에 있고 OpenLDAP 구성을 위한 새 디렉터리가 /etc/openldap/slapd.d/에 있다고 가정합니다. 새 /etc/openldap/slapd.d/ 디렉터리의 내용을 삭제합니다.
rm -rf /etc/openldap/slapd.d/*
slaptest를 실행하여 구성 파일의 유효성을 확인하고 새 구성 디렉터리를 지정합니다. slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
새 디렉터리의 권한을 구성합니다: chown -R ldap:ldap /etc/openldap/slapd.d
chmod -R 000 /etc/openldap/slapd.d
chmod -R u+rwX /etc/openldap/slapd.d
명확히 하려면: 최신 버전의 openldap을 사용하여 slapd 구성을 편집하는 방법에 대한 도움말을 찾고 있습니다. 여기서 구성은 원본이 아닌 스키마에 저장됩니다 slapd.conf
.
답변1
slapd.d
구성 디렉터리 로 마이그레이션 한 후 slapd.conf
파일은 여러 LDIF 파일로 변환됩니다.
이제 구성된 각 데이터베이스에 대해 slapd.conf
새로운 ldif 파일이 있습니다 slapd.d/cn=config/
. 파일 이름은 olcDatabase={Number}NameOfDatabase.ldif
.
slapd.d
내 사례의 구조 는 다음과 같습니다 (데비안 기준).
slapd.d/
├── cn=config
│ ├── cn=module{0}.ldif
│ ├── cn=schema
│ │ └── cn={0}core.ldif
│ ├── cn=schema.ldif
│ ├── olcDatabase={0}config.ldif
│ ├── olcDatabase={1}bdb.ldif
│ └── olcDatabase={-1}frontend.ldif
└── cn=config.ldif
olcDatabase={1}bdb.ldif
가장 중요한 것은 olcDatabase={0}config.ldif
두 개의 데이터베이스 백엔드에 대한 구성을 포함하는 파일입니다 . bdb
- 기본 LDAP 베이스와 구성을 config
동적으로 수정하기 위한 더미 데이터베이스.slapd
각 데이터베이스에는 ldif 파일에 구성되는 자체 비밀번호와 루트 사용자가 있습니다. 루트 사용자 및 비밀번호는 다음 속성으로 정의됩니다.
olcRootDN: cn=Manager,cn=config
olcRootPW:: c2VjcmV0
따라서 비밀번호를 변경하는 첫 번째 방법은 값을 변경하는 것입니다 olcRootPW
. 이 예에서는 비밀번호가 word로 설정되고 secret
base64로 인코딩됩니다.
olcRootPW
이 줄을 다음과 같이 변경할 수 있습니다 .
olcRootPW: plaintextpassword
olcRootPW:: base64decodedtext (in base64 method there is double `:` after attribute name)
olcRootPW: {SSHA}8IAb01fZAtNBH5F0n4x5t2WkmQbhZnWm (SSHA encoded password generated by `slappaswd` command)
따라서 데이터베이스 파일을 편집하면 완료됩니다(ldif 파일을 편집할 때 실행 중인지 확실하지 않습니다. slapd
중지하는 것이 더 안전합니다)... 하지만 다른 옵션이 있습니다... ;)
데이터베이스를 활성화한 경우 config
모든 LDAP 클라이언트를 사용하여 데이터베이스에 바인딩할 수 있습니다.아파치 디렉토리 스튜디오이것은 훌륭한 LDAP 클라이언트/편집기입니다. 물론 이 데이터베이스에 바인딩하려면 이 백엔드를 이해 olcRootDN
하고 olcRootPW
구성해야 합니다. 이 경우 BaseDN을 로 설정해야 합니다 cn=config
. 접속 후 사용자 이름과 비밀번호는 입니다 olcDatabase={1}bdb,cn=config
.