davsvnauthz를 사용하여 SVN 권한 설정

davsvnauthz를 사용하여 SVN 권한 설정

액세스 제한에 대해 혼란스럽게 만드는 경로 상속 문제가 있는 것 같습니다. 예를 들어, rw그룹/사용자에게 액세스 권한을 부여 하고 이를 /../../secret없음으로 제한하려는 경우 즉시 나에게 침을 뱉습니다.

다음은 dav_svn.authz에서 달성하려는 작업의 예입니다.

[groups]
grp_W = a, b, c, g
grp_X = a, d, f, e
grp_Y = a, e,

[/]
* = 
@grp_Y = rw

[somerepo1:/projectPot]
@grp_W = rw

[somerepo2:/projectKettle]
@grp_X = rw

예상 사항: 모든 저장소에 동시에 grp_Y액세스 하고 해당 저장소에만 액세스 할 수 있습니다.rwgrp_Wgrp_X

무슨 일이 일어나는지: grp_Y모든 저장소에 액세스할 수 있지만 grp_W아무 것도 grp_X 액세스 할 수 없습니다.

액세스 순서를 뒤집어 모든 사람에게 액세스 권한을 부여하고 각 저장소에서 이를 제한하면 만료된 규칙을 즉시 무시하고(권한 제거) 모든 사람에게 루트 수준에서 부여된 액세스 권한을 부여합니다.

사용자별 조항과 동일한 작업을 수행하는 그룹을 버리세요. 예를 들면 다음과 같습니다.

[/]
a = rw
b = 
c = 
d = 
e =
f = 
g = rw

[somerepo1:/projectPot]
a = rw
b = rw
c = rw
d =
e = rw
f =
g = rw

[somerepo2:/projectKettle]
a = rw
b
c
d = rw
e = rw
f = rw
g

이것은 똑같은 결과를 낳습니다. ~에 따르면문서나는 모든 프로토콜을 따르므로 이것은 말도 안되는 일입니다.

dav_svn을 사용하여 Apache2에서 실행

답변1

일련의 골치 아픈 일 끝에 나는 이것을 * = rw사용하지 않은 채로 두었습니다 SVNParentPath. 돌이켜보면 갑자기 읽기 순서가 문제였다는 느낌이 들었습니다.

첫째, 내 예제 명명 규칙은 완전히 잘못되었습니다 [<repo_name>:<path-in-repo>]. 내 실제 규칙이 정확하므로 구문이 근본 원인이 아닙니다.

주요 문제는 authz 파일이 첫 번째 읽기 규칙 또는 사용 가능한 일치 항목의 "특정성" 순서를 적용해야 한다는 것입니다. 내가 생각하는 한 모든 것이 루트와 완전히 일치할 것입니다. 따라서 예제의 순서를 반대로 하면 다음과 같습니다.

[groups]
grp_W = a, b, c, g
grp_X = a, d, f, e
grp_Y = a, e,

[ProjectPot:/]
@grp_W = rw

[ProjectKettle:/]
@grp_X = rw

[/]
* = 
@grp_Y = rw

이에 따라 수락되고 구현됩니다. 이건 행동이야녹음되지 않음제 생각에는 이것은 사소한 일로 인한 엄청난 혼란입니다.

관련 정보