389ds LDAP 서버를 구성하려고 합니다. 테스트용으로 389ds LDAP 서버만 필요하고 프로덕션 환경은 구성하지 않습니다. 나는 사용한다389ds/dirsrv도커 이미지. ldapmodify 명령을 사용하여 user01을 추가했습니다. 문제는 user1이 어떤 권한도 얻지 못한다는 것입니다. user01은 ldapsearch 명령을 사용할 수 없습니다.
cn=카탈로그 관리자:
ldapsearch -x -H ldap://localhost:3389 -D "cn=Directory Manager" -w dupa -LLL -b "cn=user01,ou=People,dc=example,dc=org" -s base objectclass=*
dn: cn=user01,ou=People,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: shadowAccount
objectClass: posixAccount
objectClass: person
objectClass: top
cn: user01
gidNumber: 1000
homeDirectory: /home/user01
sn: Bar1
uid: user01
uidNumber: 1000
shadowLastChange: 19711
userPassword:: e1BCS0RGMi1TSEE1MTJ9MTAwMDAkR0NySUE4TXRkdGhtTlhMUHF2dmErMG1iQ3p
Hd2FDWDUkZUVtZnRRd2o3MG8xeEl5bFNVRFJIaEJHTkdxcDVBVWIrTjdEOFF5RUFjZGpxNFpMa2Z3
dm45MElrK1hFc3A3eGxVZDEvUGkvVEpKbThTYjh5eEN1alE9PQ==
cn=user01,ou=사람,dc=예,dc=org:
ldapsearch -x -H ldap://localhost:3389 -D "cn=user01,ou=People,dc=example,dc=org" -w password1 -b "cn=user01,ou=People,dc=example,dc=org" -s base objectclass=*
# extended LDIF
#
# LDAPv3
# base <cn=user01,ou=People,dc=example,dc=org> with scope baseObject
# filter: objectclass=*
# requesting: ALL
#
# search result
search: 2
result: 0 Success
# numResponses: 1
user01이 자신을 볼 수 있기를 바랍니다. 어떻게 고치나요?
답변1
해당 aci를 사용하여 사용자를 읽으려면 권한을 추가해야 할 수도 있습니다. 예를 들어:
파일을 생성합니다:modify_acis.ldif
dn: ou=people,dc=your,dc=server,dc=com
changetype: modify
add: aci
aci: (targetattr="*")(version 3.0; acl "Self Read Access"; allow (read, search, compare) userdn="ldap:///self";)
적용하다:
ldapmodify -x -D "cn=Directory Manager" -W -f modify_acis.ldif
무엇을 읽을지 등을 신중하게 생각해야 합니다. 예를 들어, 사용자에게 비밀번호 재설정 권한을 부여하지 않는 한 비밀번호 해시를 읽을 수 없어야 합니다.