출처 : http://ummae.tistory.com/197
SVN 권한 설정
svnserve.conf
[general]
anon-access=none
auth-access = write
password-db = passwd
authz-db = authz
realm = Kanji_Proj
anon-access=none
auth-access = write
password-db = passwd
authz-db = authz
realm = Kanji_Proj
요로코롬 짧아진다. 그럼 각각의 의미를 알아 보자.
[general]
anon-access=none #인증되지않은(즉 계정이 없는) 사용자에 대해 접근을 거부한다.
auth-access = write #인증된 사용자에 대해 쓰기 권한을 준다.
password-db = passwd # 인증된 사용자에 대한 계정 정보(아이디/패스) 정보가 기록된 파일명을 의미한다.(기본값 passwd)
authz-db = authz # 인증된 사용자에 대해 저장소에 대한 권한 설정이 기록된 파일명(기본값)
#realm = Kanji_Proj #현재 파일에 해당되는 저장소의 영역에 대해 설정하는 것인데 여기서는 주석처리로 하고 넘어가자.(ㅌㅌ)
즉, 인증된 사용자에게 저장소의 접근권한을 일체 주지 않고, 인증된 사용자에게만 접근을 허용하는 그런 의미를 갖는 svnserve.conf파일이 되겠다.
다음으로 passwd 파일을 살펴보자.
passwd
[users]
# harry = harryssecret
# sally = sallyssecret
aaa = a
bbb = b
ccc = c
# harry = harryssecret
# sally = sallyssecret
aaa = a
bbb = b
ccc = c
= 를 기준으로 왼쪽이 아이디 오른족이 비밀번호가 된다.
id: aaa, pw: a
id: bbb, pw: b 이런식이다.
마지막으로 authz
authz
[groups]
# harry_and_sally = harry,sally
gABC = aaa, bbb, ccc
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@gABC = r
[ABC:/]
* = r
@gABC = rw
# harry_and_sally = harry,sally
gABC = aaa, bbb, ccc
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@gABC = r
[ABC:/]
* = r
@gABC = rw
authz 파일의 의미를 살펴보자
[groups]
# harry_and_sally = harry,sally # 사용자를 그룹단위로 묶을 수 있다.
gABC = aaa, bbb, ccc # 즉, 사용자 aaa, bbb, ccc를 묶어서 gABC라는 그룹으로 관리.
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz] #repository저장소의 /baz/fuz위치에 대한 권한
# @harry_and_sally = rw #@<-의 의미는 그룹을 뜻한다. harry_and_sally 그룹에 읽기/쓰기권한을 준다.
# * = r # * 는 모든 사용자를 의미한다. 모든 사용자에게 읽기 권한을 준다.
[ABC:/] #ABC:/저장소
* = r #모든 사용자에게 읽기 권한을 준다.
@gABC = rw #gABC그룹에게 읽기/쓰기 권한을 준다.
주의 1. authz 파일에 보면 *(와일드카드)가 모든 사용자를 의미한다고 했는데, 만약 svnserve.conf 파일에 anon-access=none (인증된 사용자에 대한 권한접근을 거부) 설정이 안되 있으면 말 그대로 아이디가 있건 없고 모든 접속한 사용자에 대한 권한이 되 버린다. 하지만 anon-access=none 이 설정되 되어 있다면 아이디/비번을(계정) 을 갖고 있는 사용자들에 대한 권한 설정이 될 것이다.