2014-05-12 7 views
1

더 많은 분기와 태그가 포함 된 svn 저장소에 프로젝트가 있고 여러 사용자가 동일한 프로젝트에서 다른 분기로 작업하고 있습니다. 나는 특정 브랜치에만 액세스 할 수 있도록 특정 사용자에게 쓰기 권한을 부여했지만 다른 브랜치에는 액세스 할 수 없으며 다른 사용자가 다른 브랜치에 쓸 수있는 권한을 부여했습니다.SVN 액세스 제어가 작동하지 않습니다.

단계 1 : svnserve.conf 단계 3

[general] 
password-db = passwd 
realm = reponame 
anon-access = none 
auth-access = write 
authz-db = authz 

: 사용

username : passwd 

라이트 사용자 & passwd 파일을은 passwd I는

htpasswd -m /etc/apache2/dav_svn.passwd username 

2 단계를 사용하는 사용자를 생성해야 passwd 파일에서이 프로젝트에 대한 htpasswd를 생성합니다.

4 단계 :

#[the_name_of_repository:/path_in_that_repository] 
[test:/] 
user1 = r 
user2 = r 

[test:/branches/data1] 
user1 : rw 

[test:/branches/data2] 
user2 : rw 

그래서, 지금 user2 만 액세스 (커밋, 업데이트 체크 아웃) 할 수 있습니다에는 AuthZ data2 지점과 다른 모든 폴더를 읽을 수 있고, user2이 (갱신, 체크 아웃, 커밋)에 액세스 할 수 있습니다 data1 분기. authz 파일에서 예상대로 액세스 제어가 제대로 작동하지 않습니다.

내가 뭘 잘못하고 있니?

+0

질문을 닫을 이유가 없습니다. 그것은 주제에 관한 것이므로 상당히 명확합니다. – Dialecticus

+0

"user1"이'data1'에 접근 할 수 있다고 말하면, 규칙은 모두 정확합니다. 당신이 설명하지 않은 것은 당신의 저장소 (Apache, svnserve, svnserve + ssh)를 제공하는 방법과 당신의 설정을 가리키는 방법입니다. – alroc

+0

또한 파일이 정말로'svnserver.conf'입니까? 디폴트는'svnserve.conf'입니다 (** r **가 없다는 것에 유의하십시오). – alroc

답변

0

@alroc이 댓글에서 말한 것으로 인해 문제가 발생할 수 있습니다. svnserve.conf를 사용하여 권한을 구성했지만 Apache 용 사용자를 생성했습니다.

아파치의 mod_dav_svn은 svnserve.conf를 읽지 않습니다. 대신, install mod_authz_svnset up an AuthzSVNAccessFile해야합니다. 이 파일의 구문은 svnserve.conf와 같습니다.

+0

사실, 이것을 다시 읽으면 이미 mod_authz_svn을 설정했을 것입니다 ... 함께 오면 다른 사람에게 유용 할 수도 있기 때문에이 대답을 남겨 두겠습니다. – Powerlord

+0

은 Centos에서 AuthzSVNAccessFile로 언급했지만 액세스하는 동안 금지 된 오류가 발생하도록 구성되었습니다. – pravin09

0
  1. 당신은 인증의 두 개의 독립적와 관련이없는 유형에서 하나를 당신이 가지고있는 저장소의 유형 (HTTP 기반의 아파치에 의해 제공하거나 또는 svnserve에 의해 제공, SVN 기반), 알고 사용합니다 htpasswd를위한 파일의 모든 레코드에 올바른 구문을 사용해야합니다 이상 사용자 1 + 사용자 2 개 기록
  2. authz에서 아파치 또는 svnserve에 대한 passwd
  3. 인증 데이터베이스가 있어야합니다 : 당신은 두 가지 실수를, corrrect 형식은

입니다

관련 문제