티스토리 뷰

하나의 SVN 저장소에 여러개의 프로젝트가 올라가 있는 경우 각 프로젝트 별로 업무 연관성이 있는 개발자만 접근하여 사용을 해야 하는 상황이다. 

이렇게 oingdaddy라는 저장소에 현재 A-project, B-project가 있고 이것들을 개발하는 개발자는 각각 다른 사람들이다. 미연의 사고를 방지하기 위해 A-project에는 A-project 관련 인원만 B-project에는 B-project 관련 인원만 접근 가능하게 SVN 설정을 하고자 한다. 


설정의 대부분 oingdaddy라는 저장소의 conf 폴더 하위에 있는 파일에서 진행을 한다. 

 

svnserve.conf

anon-access=none           #인증되지않은(즉 계정이 없는) 사용자에 대해 접근을 거부한다.
auth-access = write        #인증된 사용자에 대해 쓰기 권한을 준다.
password-db = passwd       #인증된 사용자에 대한 계정 정보(아이디/패스) 정보가 기록된 파일명을 의미한다.(기본값 passwd) 
authz-db = authz           #인증된 사용자에 대한 권한 정보(폴더접근경로) 정보가 기록된 파일명을 의미한다.

 

passwd

[users]
#Admin
oingdaddy = oingdaddy

#A-project developer
adeveloper1 = adeveloper1
adeveloper2 = adeveloper2

#B-project developer
bdeveloper1 = bdeveloper1
bdeveloper2 = bdeveloper2

그냥 있는사람 쭉 나열해서 작성해도 상관없지만 이왕이면 이렇게 프로젝트별로 나눠서 사용자를 관리하는것은 관리적인 측면에서 매우 편리하다. 알아보기 쉽게 크게 3가지 그룹을 만들어봤다. 

 

authz

[groups]
#AdminUser
adminUser=oingdaddy

#A-project group
AprojectUser=adeveloper1,adeveloper2

#B-project group
BprojectUser=bdeveloper1,bdeveloper1

[/]
@adminUser=rw
@AprojectUser=r
@BprojectUser=r

#A-project
[/trunk/A-project]
@AprojectUser=rw
@BprojectUser=

#B-project
[/trunk/B-project]
@AprojectUser=
@BprojectUser=rw

프로젝트 접근권한 설정할때 가장 핵심이 되는 부분이다.

 

passwd에서 정의한 사용자들을 여기서 그룹핑을 해준다. 필자는 크게 모두 볼수 있는 admin 그룹, A-project만 볼수 있는 AprojectUser 그룹, B-project만 볼수 있는 BprojectUser 그룹으로 생성을 하였다. 

 

그리고 생성한 그룹과 프로젝트(폴더)를 매핑시켜준다. 프로젝트(폴더)는 [/] 이런식으로 대괄호로 감싸서 표현을 한다. 그리고 그것에 매핑되는 그룹은 @adminUser 이런식으로 표현을 한다.  위의 예제를 보면 직관적이라서 이해가 어렵지는 않을 것이다.

A-project를 B-project 인원에게 아예 보이지도 않게 하려면 위처럼 @BprojectUser= 으로 적어주면 된다.

또한 현재는 A-project로 프로젝트 단위로 구분을 했는데 [/trunk/A-project/aModule], [/trunk/A-project/bModule]

이렇게 프로젝트 내부의 폴더까지도 세분화해서 권한을 부여할 수 있다. 

 

유의할점은 

SVN을 구성할때 svn://111.222.0.111:3690/TEST 처럼 포트 뒤에 프로젝트명이 붙을 경우는 [/]를  [TEST:/] 로 작성을 해줘야한다. 

 

이제 잘 되나 테스트를 해보자. 

adminUser로 접속시 

adminUser로 접속시에는 맨 처음 권한을 설정하기 전과 같이 모든 프로젝트가 보이고 쓰기도 가능하다. 

 

그럼 계정을 변경을 해보자. 

 

변경하는 방법은 SVN Repository Perspective에서 저장소를 우클릭을 하고 Location Properites 를 클릭하면 된다. 

adeveloper1로 변경을 했다. A-project만 보여야 한다. 

 

adeveloper1                                                                                bdeveloper1

adeveloper1과 bdeveloper1로 각각 접속을 했을때 위와 같이 원했던 대로 자신의 프로젝트만 볼 수 있다. 잘 된다.

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31