2.4. Get Effective Rights 검색을 사용하여 항목에 대한 액세스 권한 확인
관리자는 사용자가 특정 항목 내의 속성에 대해 갖는 액세스 권한을 찾고 제어할 수 있습니다.
GER( 유효 권한 )는 사용자가 지정된 항목에 대한 액세스 권한을 표시하기 위해 디렉토리 검색을 확장하는 방법입니다. 다음 권한을 지정할 수 있습니다.
- 읽기
- 쓰기 및 자체 쓰기
- 검색
- 추가
- 삭제
항목에 대한 효과적인 권한을 확인하는 것은 다음과 같은 경우에 유용합니다.
-
GER 명령을 사용하여 디렉터리에 대한 액세스 제어 지침을 보다 효과적으로 구성할 수 있습니다. 다른 그룹에 비해 한 사용자 그룹이 보거나 편집할 수 있는 항목을 제한해야 하는 경우가 많습니다. 예를 들어 Cryostat
관리자 그룹의 멤버는
및관리자
급여
와 같은 특성을 검색하고 읽을 수 있는 권한이 있을 수 있지만HR 그룹
멤버만 수정하거나 삭제할 수 있는 권한이 있습니다. 사용자 또는 그룹에 대한 효과적인 권한을 확인하는 것이 관리자가 적절한 액세스 제어를 설정하는지 확인하는 한 가지 방법입니다. -
GER 명령을 사용하여 개인 항목에서 보거나 수정할 수 있는 속성을 확인할 수 있습니다. 예를 들어 사용자는
homePostalAddress
및cn
과 같은 속성에 액세스할 수 있어야 하지만manager
및salary
속성에 대한 읽기 액세스 권한만 있을 수 있습니다.
getEffectivechunks
검색에서는 다음 엔티티를 사용합니다.
-
요청자.
getEffective rights
검색에서 작업을 실행할 때 인증된 항목입니다. -
귀하가 평가할 권리가 있는 대상입니다. 이는 GER 제어에서 권한 부여
DN
으로 정의됩니다. - 대상입니다. 검색 기반, 검색 필터 및 요청의 속성 목록으로 정의합니다.
2.4.1. 효과적인 권한 검색 권한 얻기 링크 복사링크가 클립보드에 복사되었습니다!
모든 Get Effective Rights (GER) 검색에는 모든 항목이 가질 수 있는 다음 액세스 권한이 표시됩니다.
- 항목에 대한 권리에 해당하는 상위 수준 권한입니다. 이 액세스 권한은 사용자 A가 사용자 B 항목에서 수행할 수 있는 작업 유형을 표시합니다.
- 두 번째 수준 권한 은 사용자 A 에 대한 지정된 속성에 대한 권한을 표시합니다. 사용자 A 에는 동일한 항목의 속성마다 다른 액세스 권한이 있을 수 있습니다. 사용자에게 부여된 모든 액세스 제어는 해당 항목에 대한 효과적인 권한입니다.
예를 들면 다음과 같습니다.
entryLevelRights: vadn attributeLevelRights: givenName:rscWO, sn:rscW, objectClass:rsc, uid:rsc, cn:rscW
entryLevelRights: vadn
attributeLevelRights: givenName:rscWO, sn:rscW, objectClass:rsc, uid:rsc, cn:rscW
GER 검색에는 항목 및 속성에 대한 다음과 같은 액세스 권한이 있습니다.
권한 | 설명 |
---|---|
a | 항목을 추가합니다. |
d | 이 항목을 삭제합니다. |
n | DN의 이름을 변경합니다. |
v | 항목을 확인합니다. |
권한 | 설명 |
---|---|
r | 읽기. |
s | 검색. |
w |
쓰기( |
o |
수정( |
c | 비교. |
W | 자체 쓰기. |
O | 자체 삭제. |
2.4.2. 효과적인 권한 검색 형식 얻기 링크 복사링크가 클립보드에 복사되었습니다!
Get effective rights (GER)는 확장된 디렉토리 검색입니다. 이를 사용하려면 ldapsearch
명령을 사용하여 LDAP(Lightweight Directory Access Protocol) 제어에 -E
옵션을 전달해야 합니다. 예를 들면 다음과 같습니다.
ldapsearch -x -D bind_dn -W -H ldap://server.example.com -b base_DN -E [!]1.3.6.1.4.1.42.2.27.9.5.2=:GER_subject (searchFilter) attributeList
# ldapsearch -x -D bind_dn -W -H ldap://server.example.com -b base_DN -E [!]1.3.6.1.4.1.42.2.27.9.5.2=:GER_subject (searchFilter) attributeList
-b
는 하위 트리의 기본 DN 또는 GER 제목을 검색할 수 있는 항목입니다.검색 기반이 특정 항목 DN이거나 결과가 하나의 항목만 반환하는 경우 결과에는 요청자가 해당 항목에 대한 권한이 표시됩니다. 여러 항목이 필터와 일치하는 경우 검색은 각 항목에 대한 요청자의 권한과 일치하는 모든 항목을 반환합니다.
1.3.6.1.4.1.42.2.27.9.5.2
옵션은 GER 컨트롤의 개체 식별자입니다.느낌표(
!
-
GER_subject 는 확인 권한이 있는 사용자입니다. GER_subject 를 비워 두면 (
dn:
) 익명 사용자의 권한에 대한 결과를 얻을 수 있습니다. -
선택적 attributeList 는 GER 결과를 지정된 특성 또는 오브젝트 클래스(예:
mail
속성)로 제한합니다. -
별표(
*
) 기호를 사용하여 모든 특성을 반환합니다. -
더하기(
+
) 기호를 사용하여 운영 특성을 반환합니다.
GER 옵션은 ldapsearch
결과에 추가 정보를 추가하여 특정 사용자에게 어떤 권한이 있는지 표시합니다. 해당 GER 주체 사용자는 추가 옵션 -D
를 사용하여 자신의 항목에 대한 권한을 요청할 수 있습니다.
요청자가 Directory Manager 사용자가 아닌 경우 요청자는 요청자의 항목에 GER 주체가 보유한 권한만 볼 수 있습니다. 다른 모든 항목은 유효 권한에 대한 충분하지 않은 액세스 오류를 반환합니다.
일반 사용자가 GER 검색을 실행하는 데 필요한 시나리오는 다음과 같습니다.
- 사용자 A는 다른 디렉토리 항목에 대해 자신이 가진 권한을 확인합니다.
- 사용자 A는 자신의 개인 입력에 대한 권리를 확인합니다.
- 사용자 A는 사용자 B가 사용자 A의 항목에 대한 권한을 확인합니다.
2.4.3. Get Effective Rights 검색에 대한 일반적인 시나리오 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 Get Effective Rights 검색을 사용할 수 있는 경우와 방법을 보여 줍니다.
2.4.3.1. 효과적인 권한 검색의 일반적인 예 링크 복사링크가 클립보드에 복사되었습니다!
GER(Get Effective Rights) 검색을 사용해야 하는 경우 가장 일반적인 시나리오는 다음과 같습니다.
개인 권리를 확인합니다. 사용자 A가 개인 입력에 대한 권리를 확인하는 경우 예를 들어, Ted Paulris는 자신이 입력한 권리를 확인하기를 원합니다.
예 2.36. 개인 권리 확인 (사용자 A에서 사용자 A)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
-b
옵션에는 요청자의 DN도 있습니다.다른 사용자에 대한 권한을 확인합니다. 예를 들어, Ted Julris는 관리자이며, 자신의 하위 항목 중 하나를 확인해야 합니다.
예 2.37. 다른 사용자에 대한 권한 확인(사용자 A~사용자 B)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서 Ted Paulris는 모든 속성에 대한 모든 속성에 대한 읽기, 검색, 비교, 수정 및 삭제 권한을 모두 읽고, 검색, 비교, 수정 및 삭제했습니다.
디렉터리 관리자로 다른 사용자의 항목을 통해 한 사용자의 권한을 확인합니다. 예를 들어, 디렉터리 관리자는 관리자로서 자신의 종속 Ted Paulris의 항목에 대해 어떤 권리를 가지고 있는지 확인하고 있습니다.
예 2.38. 디렉터리 관리자에서 한 사용자의 권한을 다른 사용자에 대해 확인
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자에게 권한이 없는 경우 결과에 충분하지 않은 액세스 오류가 표시됩니다.
예 2.39. 항목에 대한 권한이 없음
ldapsearch -H ldap://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=*)"
# ldapsearch -H ldap://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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 사용자가 귀하의 항목에 대해 어떤 권한을 가지고 있는지 확인하십시오. 예를 들어, Ted Paulris는 Ted Paulris의 출입에 어떤 권리를 가지고 있는지 확인합니다.
예 2.40. 다른 사용자가 자신의 항목에 대해 어떤 권한을 가지고 있는지 확인
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서niveilleer는 항목의 DN을 보고
ou
,givenName
,l
및 기타 속성을 읽고, 검색하고 비교할 수 있는 권한이 있습니다.userPassword
속성에 대한 권한이 없습니다.
2.4.3.2. 존재하지 않는 속성에 대한 Get Effective Rights 검색 예 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 항목의 속성에는 값이 없습니다. GER(Get Effective Rights) 검색과 함께 별표(*
)를 사용하면 항목에 설정되지 않은 속성을 포함하여 해당 항목에 사용 가능한 모든 특성이 반환됩니다.
예 2.41. 항목의 모든 속성에 대한 권한 확인
이 예에서 secretary
속성은 설정되지 않지만 GER 검색 결과에서 계속 볼 수 있습니다.
2.4.3.3. Get Effective Rights 검색 특정 특성 또는 개체 클래스의 예 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 예제에서는 특정 속성에 대한 권한, 특성 세트 및 항목의 개체 클래스에 속하는 모든 특성을 검색하는 방법을 보여줍니다.
GER(Effective Rights) 검색 결과를 나열하여 항목의 특정 특성에 대한 검색 결과를 가져옵니다. 예를 들면 다음과 같습니다.
예 2.42. 특정 속성에 대한 효과적인 권한 검색 결과 가져오기
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GER는 형식 attribute@objectClass.에서 항목의 오브젝트 클래스의 특정 속성을 검색합니다. 요청자는 디렉터리 관리자여야 합니다.
예 2.43. 개체 클래스의 특정 속성에 대한 효과적인 권한 검색 결과 가져오기
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 별표(
*
)를 사용하여 *@objectClass 형식으로 오브젝트 클래스의 모든 특성을 반환할 수 있습니다. 검색 결과에는 존재하지 않는 속성도 포함됩니다.
2.4.3.4. 존재하지 않는 항목에 대한 Get Effective Rights 검색의 예 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서는 아직 존재하지 않는 사용자의 항목에 대해 특정 사용자의 권한을 확인하는 방법을 보여줍니다. 이 경우 서버는 하위 트리 내에 템플릿 항목을 생성하고 이를 통해 Get Effective Rights (GER) 검색을 사용할 수 있습니다. 존재하지 않는 항목을 확인하기 위해 Get Effective Rights (GER) 검색은 지정된 개체 클래스를 사용하여 이 항목의 모든 잠재적인 속성을 사용하여 템플릿 항목을 생성할 수 있습니다.
서버가 템플릿 항목을 만들 때 개체 클래스 정의에서 첫 번째 must 특성을 사용하여 RDN 특성을 만듭니다. must 속성이 없는 경우 서버는 MAY 특성을 사용합니다. @objectclass:rdn_attribute 형식으로 오브젝트 클래스에 전달하여 RDN 값을 지정합니다.
예를 들어, uidNumber
를 RDN으로 사용하여 존재하지 않는 POSIX 항목에 대한 두려움의 권한을 확인하려면 다음을 수행하십시오.
예 2.44. 존재하지 않는 항목에 대한 권한 확인
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
# 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
2.4.3.5. 운영 특성에 대한 효과적인 권한 검색의 예 링크 복사링크가 클립보드에 복사되었습니다!
ldapsearch
명령은 작동 속성을 반환하지 않습니다. 더하기 기호(+
)를 사용하여 검색합니다. +
를 사용하면 항목에서 사용할 수 있는 운영 속성만 반환됩니다.
예 2.45. 운영 속성 검색
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=*)" "+"
# 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
2.4.3.6. 효과적인 권한 가져오기 결과 및 액세스 제어 규칙의 예 링크 복사링크가 클립보드에 복사되었습니다!
ACL(Access Control List)은 사용자에게 있는 액세스 권한(GER)을 정의합니다.
예 2.46. 액세스 제어 목록
이 예에서 ACL에는 dc=example,dc=com
하위 트리가 포함되지 않습니다. 그러면 GER 검색 결과에 사용자가 dc=example,dc=com
항목에 대한 권한이 없다는 내용이 표시됩니다.
예 2.47. 설정되지 않은 ACL을 사용한 GER 검색 결과
결과를 보려면 Directory Manager여야 합니다. 그렇지 않으면 결과가 비어 있습니다.
2.4.4. 올바른 반환 코드 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Get Effective Rights (GER) 검색 결과는 오류가 발생하면 오류 코드를 반환합니다. 다음 표에서는 오류 코드를 설명합니다.
코드 | 설명 |
---|---|
0 | 성공적으로 완료됨 |
1 | 작업 오류 |
12 |
중요한 확장을 사용할 수 없습니다. 중요 표현식이 |
16 | 이러한 속성은 없음 |
17 | 정의되지 않은 속성 유형 |
21 | 잘못된 속성 구문 |
50 | 권한이 부족 |
52 | 사용할 수 없음 |
53 | 수행 거부 |
80 | 기타 |