2012-10-19 10 views
2

사용자에 대한 읽기/쓰기 권한을 정확히 하나의 저장소에 제공해야합니다.svn authz가 기본적으로 읽기 액세스가 필요한 이유는 무엇입니까?

왜 작동하지 않습니까?

[groups] 
dev = dvolosnykh,sam 

[/ukk] 
ukk = rw 

[/] 
@dev = rw 

왜 추가해야합니까? 내가 dav_svn 사용하고

[/] 
@dev = rw 
* = r # read access for everyone. Why? 

, 아파치, 리눅스 우분투 서버 11.04

내 dav_svn.conf :

<Location /svn> 

    DAV svn 

    SVNParentPath /var/svn 
    SVNListParentPath On 

    AuthType Basic 
    AuthName "Subversion Repository" 
    AuthUserFile /etc/apache2/dav_svn.passwd 
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz 

    Require valid-user 

</Location> 
+0

나는 비슷한 문제가있었습니다. 루트에'* = r'이 없으면 어떤 자격 증명 프롬프트없이 금지되었습니다. 내 문제는'Require valid-user'가'LimitExcept' 태그 안에 있다는 사실 때문이었습니다. 나는 실패의 이유가 있다고 생각한다 : "유효한 사용자"가 필요하지 않기 때문에, 모든 사람들이'* = r'에 의해 권한이 부여되지 않으면 => 금지 된 것을 인증 할 것이 없다. 나는 그 문제에 많은 시간을 보냈다. 그래도 답변을 게시 할 수 없으며 스 니펫에 'LimitExcept'가 없습니다. – boumbh

답변

0

글쎄, 당신은 (정말이) 완벽 경우에해야 할 수 있습니다 유효한 dav_svn.authz 파일

[groups] 
dev = dvolosnykh,sam 

[/ukk] 
@dev = rw 

[/] 
* = 

다시 판독에는 AuthZ 파일 형식^섹션 이름은 경로 액세스 OPE의 왼쪽이고 rand는 객체 (사용자 또는 그룹)이고 오른쪽은 액세스 유형이며 비어 있습니다. NONE

1

기본적으로 어느 누구도 저장소에 액세스 할 수 없습니다. 즉, 저장소의 루트에있는 모든 사용자에게 적어도 읽기 권한을 부여하려고합니다. 별표 (*)는 "모든 사용자"를 의미합니다.

[/] 
* = r 

이것은 일반적인 설정입니다. 섹션 이름에 저장소 이름이 언급되어 있지 않음을 주목하십시오. 이렇게하면 모든 리포지토리를 모든 사용자가 읽을 수 있습니다. 모든 사용자가 리포지토리에 대한 읽기 권한을 가지면 특정 리포지토리의 특정 하위 디렉터리에있는 특정 사용자에게 명시 적 rw 권한을 부여 할 수 있습니다.

+0

그 일을 통해 문제가 해결되었지만 이제는 인터넷에있는 모든 사람이 내 리포지토리를 찾아 볼 수 있습니다. 나쁜 조언 ... –

0

현재 다음과 같이 confiure해야합니다

[<repo_name>:<path-in-repo>] 

예 : 라인

[osirisProject:/] 

@grp_W = rw

0

확인의 conf/svnserve.conf

# anon-access = read 
# auth-access = write 

이들은 익명 및 인증 된 사용자의 기본값이지만 주석을 제거하고 읽기, 쓰기 또는 없음으로 주석을 변경할 수 있습니다.