8.3. Get Effective search에 대한 일반적인 시나리오
다음 예제에서는 Get EffectiveECDHE 검색을 사용할 수 있는 시기와 방법을 일반적인 시나리오를 보여줍니다.
8.3.1. Get Effective search의 일반적인 예 링크 복사링크가 클립보드에 복사되었습니다!
GER(GER) 검색 기능을 사용해야 할 때 가장 일반적인 시나리오는 다음과 같습니다.
개인 권리를 확인합니다. 사용자 A가 개인 항목에 대한 권리를 확인하고 있는 경우 예를 들어, Ted Chris는 자신의 입력 권한을 확인하려고 합니다.
예 8.1. 개인 권한 확인 (사용자 A에서 사용자 A)
# ldapsearch -x -p 389 -h server.example.com -D "uid=tmorris,ou=people,dc=example,dc=com" -W -b "uid=tmorris,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=tmorris,ou=people,dc=example,dc=com' "(objectClass=*)" dn: uid=tmorris,ou=People,dc=example,dc=com givenName: Ted sn: Morris ou: IT ou: People l: Santa Clara manager: uid=jsmith,ou=People,dc=example,dc=com roomNumber: 4117 mail: tmorris@example.com facsimileTelephoneNumber: +1 408 555 5409 objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: tmorris cn: Ted Morris userPassword: {SSHA}bz0uCmHZM5b357zwrCUCJs1IOHtMD6yqPyhxBA== entryLevelRights: v attributeLevelRights: givenName:rsc, sn:rsc, ou:rsc, l:rsc, manager:rsc, roomNumber:rscwo, mail:rscwo, facsimileTelephoneNumber:rscwo, objectClass:rsc, uid:rsc, cn:rsc, userPassword:wo이 예에서
-b옵션에는 요청자의 DN도 있습니다.다른 사용자에 대한 권한을 확인합니다. 예를 들어, Ted Chris는 관리자이며 자신의 하위 분류 중 하나에 대한 항목을 확인해야 합니다.
예 8.2. 다른 사용자에 대한 권한 확인 (사용자 A에서 사용자 B)
# ldapsearch -p 389 -h server.example.com -D "uid=tmorris,ou=people,dc=example,dc=com" -W -b "uid=dmiller,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=tmorris,ou=people,dc=example,dc=com' "(objectClass=*)" dn: uid=dmiller,ou=People,dc=example,dc=com ... entryLevelRights: vad attributeLevelRights: givenName:rscwo, sn:rscwo, ou:rscwo, l:rscwo, manager:rsc, roomNumber:rscwo, mail:rscwo, facsimileTelephoneNumber:rscwo, objectClass:rscwo, uid:rscwo, cn:rscwo, userPassword:rswo이 예에서 Ted Chris는 모든 속성에 대한 읽기, 검색, 비교, 수정 및 삭제 권한이 있습니다.
Directory Manager로, 한 사용자의 권한을 다른 사용자의 입력을 통해 확인합니다. 예를 들어, 디렉터리 관리자는 관리자가 자신의 하위 Tedgradle 항목을 통해 어떤 권리를 가지고 있는지 확인하고 있습니다.
예 8.3. Directory Manager가 다른 사용자에 대해 한 사용자의 권한 확인
# ldapsearch -p 389 -h server.example.com -D "cn=Directory Manager" -W -b "uid=tmorris,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=jsmith,ou=people,dc=example,dc=com' "(objectClass=*)" dn: uid=tmorris,ou=People,dc=example,dc=com ... entryLevelRights: vadn attributeLevelRights: givenName:rscwo, sn:rscwo, ou:rscwo, l:rscwo, manager:rscwo, roomNumber:rscwo, mail:rscwo, facsimileTelephoneNumber:rscwo, objectClass:rscwo, uid:rscwo, cn:rscwo, userPassword:rscwo사용자에게 권한이 없는 경우 결과에 충분하지 않은 액세스 오류가 표시됩니다.
예 8.4. 항목에 대한 권한 없음
# ldapsearch -p 389 -h server.example.com -D "uid=dmiller,ou=people,dc=example,dc=com" -W -b "uid=tmorris,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=tmorris,ou=people,dc=example,dc=com' "(objectClass=*)" ldap_search: Insufficient access ldap_search: additional info: get-effective-rights: requester has no g permission on the entry다른 사용자가 귀하의 입력에 대해 어떤 권리를 가지고 있는지 확인하십시오. 예를 들어, Ted Europelicense는 다음과 같이 Tedgradle의 진입에 따라 어떤 권한이 있는지 확인합니다.
예 8.5. 다른 사용자가 귀하의 입력에 대해 어떤 권리를 가지고 있는지 확인
# ldapsearch -p 389 -h server.example.com -D "uid=tmorris,ou=people,dc=example,dc=com" -W -b "uid=tmorris,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=dmiller,ou=people,dc=example,dc=com' "(objectClass=*)" dn: uid=tmorris,ou=people,dc=example,dc=com ... entryLevelRights: v attributeLevelRights: givenName:rsc, sn:rsc, ou:rsc, l:rsc,manager:rsc, roomNumber:rsc, mail:rsc, facsimileTelephoneNumber:rsc, objectClass:rsc, uid:rsc, cn:rsc, userPassword:none이 예에서는 having to view the DN of the entry and to read, search, and compare the
ou,givenName,l, and other attributes를 볼 수 있는 권한을 갖습니다.userPassword속성에 대한 권한이 없습니다.
8.3.2. 존재하지 않는 속성에 대한 검색 예 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 항목의 속성에는 값이 없습니다. Get EffectiveECDHE (GER) 검색과 함께 별표()를 사용하면 항목에 설정되지 않은 특성을 포함하여 항목에 사용 가능한 모든 속성이 반환됩니다.
예 8.6. 항목의 모든 속성에 대한 권한 확인
# ldapsearch -D "cn=Directory Manager" -W -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" "*"
dn: uid=scarter,ou=People,dc=example,dc=com
givenName: Sam
telephoneNumber: +1 408 555 4798
sn: Carter
ou: Accounting
ou: People
l: Sunnyvale
manager: uid=dmiller,ou=People,dc=example,dc=com
roomNumber: 4612
mail: scarter@example.com
facsimileTelephoneNumber: +1 408 555 9700
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: scarter
cn: Sam Carter
userPassword: {SSHA}Xd9Jt8g1UsHC8enNDrEmxj3iJPKQLItlDYdD9A==
entryLevelRights: vadn
attributeLevelRights: objectClass:rscwo, aci:rscwo, sn:rscwo, cn:rscwo, description:rscwo, seeAlso:rscwo, telephoneNumber:rscwo, userPassword:rscwo, destinationIndicator:rscwo, facsimileTelephoneNumber:rscwo, internationaliSDNNumber:rscwo, l:rscwo, ou:rscwo, physicalDeliveryOfficeName:rscwo, postOfficeBox:rscwo, postalAddress:rscwo, postalCode:rscwo, preferredDeliveryMethod:rscwo, registeredAddress:rscwo, st:rscwo, street:rscwo, teletexTerminalIdentifier:rscwo, telexNumber:rscwo, title:rscwo, x121Address:rscwo, audio:rscwo, businessCategory:rscwo, carLicense:rscwo, departmentNumber:rscwo, displayName:rscwo, employeeType:rscwo, employeeNumber:rscwo, givenName:rscwo, homePhone:rscwo, homePostalAddress:rscwo, initials:rscwo, jpegPhoto:rscwo, labeledUri:rscwo, manager:rscwo, mobile:rscwo, pager:rscwo, photo:rscwo, preferredLanguage:rscwo, mail:rscwo, o:rscwo, roomNumber:rscwo, secretary:rscwo, uid:rscwo,x500UniqueIdentifier:rscwo, userCertificate:rscwo, userSMIMECertificate:rscwo, userPKCS12:rscwo
이 예에서 secretary 특성은 설정되지 않지만 GER 검색 결과에 계속 표시될 수 있습니다.
8.3.3. 특정 특성 또는 개체 클래스에 대한 검색 Get Effective search for specific attribute or object class 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 예제에서는 특정 속성, 특성 세트 및 항목의 개체 클래스에 속하는 모든 속성에 대한 권한을 검색하는 방법을 보여줍니다.
GER(효율성) 검색 결과를 나열하여 항목의 특정 속성에 대한 검색 결과를 얻습니다. 예를 들면 다음과 같습니다.
예 8.7. 특정 속성에 대한 효과적인 search 결과 받기
# ldapsearch -D "cn=Directory Manager" -W -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" cn mail initials dn: uid=scarter,ou=People,dc=example,dc=com cn: Sam Carter mail: scarter@example.com entryLevelRights: vadn attributeLevelRights: cn:rscwo, mail:rscwo, initials:rscwoGER는 형식 attribute@objectClass 에서 항목의 오브젝트 클래스의 특정 특성을 검색합니다. 요청자는 디렉터리 관리자여야 합니다.
예 8.8. 오브젝트 클래스의 특정 속성에 대한 검색 결과 가져오기
# ldapsearch -D "cn=Directory Manager" -W -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" uidNumber@posixAccount ... dn: cn=template_posixaccount_objectclass,uid=scarter,ou=people,dc=example,dc=com uidnumber: (template_attribute) entryLevelRights: v attributeLevelRights: uidNumber:rsc별표 (
*)를 사용하여 오브젝트 클래스의 모든 속성을 *@objectClass 형식으로 반환할 수 있습니다. 검색 결과에는 존재하지 않는 속성도 포함됩니다.
8.3.4. 존재하지 않는 항목에 대한 Get Effective search의 예 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 아직 존재하지 않는 사용자의 항목에 대해 특정 사용자의 권한을 확인하는 방법을 보여줍니다. 이 경우 서버는 하위 트리에 템플릿 항목을 생성하고 이를 통해 GER(Get EffectiveECDHE) 검색을 사용할 수 있습니다. 존재하지 않는 항목을 확인하기 위해 GER(Get EffectiveECDHE) 검색에서는 지정된 개체 클래스를 사용하여 이 항목의 모든 잠재적인 속성과 함께 템플릿 항목을 생성할 수 있습니다.
서버에서 템플릿 항목을 생성할 때 오브젝트 클래스 정의에서 첫 번째 특성을 사용하여 RDN 특성을 생성합니다. attribute가 없는 경우 서버는 MAY 특성을 사용합니다. RDN 값을 @objectclass:rdn_attribute 형식의 오브젝트 클래스에 전달하여 지정합니다.
예를 들어 uidNumber 가 RDN인 존재하지 않는 POSIX 항목에 대한 무질서의 권리를 확인하려면 다음을 수행하십시오.
예 8.9. 존재하지 않는 항목에 대한 권한 확인
# ldapsearch -D "cn=Directory Manager" -W -b "ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" @posixaccount:uidnumber
dn: uidNumber=template_posixaccount_objectclass,ou=people,dc=example,dc=com
entryLevelRights: v
attributeLevelRights: description:rsc, gecos:rsc, loginShell:rsc, userPassword:rsc, objectClass:rsc, homeDirectory:rsc, gidNumber:rsc, uidNumber:rsc, uid:rsc, cn:rsc
8.3.5. 운영 속성에 대한 Get Effective search의 예 링크 복사링크가 클립보드에 복사되었습니다!
ldapsearch 명령에서 작동 속성을 반환하지 않습니다. 더하기 기호(+)를 사용하여 검색합니다. + 를 사용하면 항목에서 사용할 수 있는 운영 가능한 속성만 반환됩니다.
예 8.10. 운영 속성 검색
# ldapsearch -D "cn=Directory Manager" -W -x -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" "+"
dn: uid=scarter,ou=People,dc=example,dc=com
entryLevelRights: vadn
attributeLevelRights: nsICQStatusText:rscwo, passwordGraceUserTime:rscwo, pwdGraceUserTime:rscwo, nsYIMStatusText:rscwo, modifyTimestamp:rscwo, passwordExpWarned:rscwo, pwdExpirationWarned:rscwo, entrydn:rscwo, aci:rscwo, nsSizeLimit:rscwo, nsAccountLock:rscwo, passwordExpirationTime:rscwo, entryid:rscwo, nsSchemaCSN:rscwo, nsRole:rscwo, retryCountResetTime:rscwo, ldapSchemas:rscwo, nsAIMStatusText:rscwo, copiedFrom:rscwo, nsICQStatusGraphic:rscwo, nsUniqueId:rscwo, creatorsName:rscwo, passwordRetryCount:rscwo, dncomp:rscwo, nsTimeLimit:rscwo, passwordHistory:rscwo, pwdHistory:rscwo, nscpEntryDN:rscwo, subschemaSubentry:rscwo, nsYIMStatusGraphic:rscwo, hasSubordinates:rscwo, pwdpolicysubentry:rscwo, nsAIMStatusGraphic:rscwo, nsRoleDN:rscwo, createTimestamp:rscwo, accountUnlockTime:rscwo, copyingFrom:rscwo, nsLookThroughLimit:rscwo, nsds5ReplConflict:rscwo, modifiersName:rscwo, parentid:rscwo, passwordAllowChangeTime:rscwo, nsBackendSuffix:rscwo, nsIdleTimeout:rscwo, ldapSyntaxes:rscwo, numSubordinates:rscwo
8.3.6. Get Effective results 및 Access Control 규칙의 예 링크 복사링크가 클립보드에 복사되었습니다!
효과적인 액세스 제어 목록(ACL)은 사용자에게 있는 Get Access Control Lists (GER)를 정의합니다.
예 8.11. 액세스 제어 목록
dn: dc=example,dc=com
objectClass: top
objectClass: domain
dc: example
aci: (target=ldap:///ou=Accounting,dc=example,dc=com)(targetattr="*")(version 3.0; acl "test acl"; allow (read,search,compare) (userdn = "ldap:///anyone") ;)
dn: ou=Accounting,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Accounting
이 예제에서 ACL에는 dc=example,dc=com 하위 트리가 포함되지 않습니다. 이로 인해 GER 검색 결과에 dc=example,dc=com 항목에 사용자에게 권한이 없음을 표시합니다.
예 8.12. 설정되지 않은 ACL을 사용한 GER 검색 결과
# ldapsearch -D "cn=Directory Manager" -W -b "dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" "*@person"
dn: cn=template_person_objectclass,uid=scarter,ou=people,dc=example,dc=com
objectClass: person
objectClass: top
cn: (template_attribute)
sn: (template_attribute)
description: (template_attribute)
seeAlso: (template_attribute)
telephoneNumber: (template_attribute)
userPassword: (template_attribute)
entryLevelRights: none
attributeLevelRights: sn:none, cn:none, objectClass:none, description:none, seeAlso:none, telephoneNumber:none, userPassword:none, aci:none
결과를 보려면 디렉터리 관리자여야 합니다. 그렇지 않으면 결과가 비어 있습니다.