본문 바로가기

프로젝트 유틸리티/버전 관리

Subversion에서 계정별로 권한 주는 방법입니다.

아파치와 연동하여 사용하는 경우입니다. 
0. svn의 repository를 testsvn으로 가정
1. apache.conf 파일(혹은 httpd.conf 파일)을 열어 authz 파일을 설정합니다.

<limitExcept> 이하를 사용하지 않도록 comment 처리합니다. <limitExcept>를 사용할 경우 authz 파일에서 * = r (anonymous read 권한)을 주지 않을 경우 permission 문제로 rw 권한 그룹이라도 commit할 수 없습니다.
 <Location /testsvn>
  DAV svn
  SVNPath /home/testsvn
  AuthType Basic
  AuthName "Test SVN Repository"
  AuthUserFile /etc/apache2/passwd_testsvn
  AuthzSVNAccessFile /home/testsvn/conf/authz
  #<LimitExcept GET PROPFIND OPTIONS REPORT>
  #Require valid-user
  #</LimitExcept>
  Require valid-user
</Location>

2. /home/testsvn/conf/authz 파일을 엽니다.
아래는 testsvn Repository에 대하여 admin1, admin2, admin3에게만 Read/Wriite 권한을 주고 그외의 사용자는 모두 Read 권한을 주는 예제입니다. '@'표시는 그룹을 만들었을 경우 사용하고, 사용자에게 권한을 설정할 경우엔 '@'표시를 하지 않습니다.

 
[groups]
admin_group = admin1,admin2,admin3
read_group = reader1, reader2

# [/foo/bar]
# harry = rw
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
#* = r
@admin_group = rw
@read_group = r

[testsvn:/]
#* = r
@admin_group = rw

@read_group = r

3. apache를 재실행 합니다.
 /etc/init.d/apache2 restart