* 디렉토리 설정 시 주의 사항

[/trunk/] 와 [/trunk]는 다르게 적용 된다.

[/trunk]로 설정할 때 trunk 하위로 접근할 수 있다.







svn의 repository의 디렉토리 별로 권한을 각각 다르게 설정하는  방법


1. anonymous는 접근을 할수 없고, 계정이 있어야만 접근이 가능하다.


svnserve.conf 



2. repository에 

/

/trunk

/release

/common

/admin

네개의 폴더가 있어서

를 설정해 주고 싶을때...


authz

[groups]
admin = admin1, admin2

dev = aaa, bbb, ccc

user = ddd, eee, fff, ggg



### 

[/]
* = r

@admin = rw


[/trunk]

* = 
@admin = rw

@dev = rw


[/release]

* = 
@admin = rw
@dev = rw

@user = r

ddd = rw


[/common]

* = rw


[/admin]

* =

@admin = rw





일단 * = 을 이용해 모두의 권한을 해제하고... 필요한 그룹/사용자의 권한을 열어준다.



출처 - http://blog.naver.com/PostView.nhn?blogId=arycoat&logNo=90058892624








알만한(?) 분들은 다 알지만 SVN의 인증과정을 관리하는 방법중 하나인 SVN Server의 자체 기능이 있다.

그럼 SVN server의 권한 인증을 사용한 한 예를 살펴보자.

X:\저장소\conf\ (윈도우기준)의 svnserve.conf 파일이 그 인증과 관련된 중요 파일이다.
그 파일의 내용은 아래 more버튼을 누르면 알 수 있듯이 매우 긴데 주석 부분을 제거 하고 나면

more..


svnserve.conf

[general]
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


= 를 기준으로 왼쪽이 아이디 오른족이 비밀번호가 된다. 
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


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그룹에게 읽기/쓰기 권한을 준다.

여기까지가 SVN server을 사용해 인증관리를 하고 있는 한 예이다.

주의 1. authz 파일에 보면 *(와일드카드)가 모든 사용자를 의미한다고 했는데, 만약 svnserve.conf 파일에 anon-access=none (인증된 사용자에 대한 권한접근을 거부) 설정이 안되 있으면 말 그대로 아이디가 있건 없고 모든 접속한 사용자에 대한 권한이 되 버린다. 하지만 anon-access=none 이 설정되 되어 있다면 아이디/비번을(계정) 을 갖고 있는 사용자들에 대한 권한 설정이 될 것이다.



출처 - http://ummae.tistory.com/197







svn을 사용하다 보면, 사용자, 또는 그룹으로 묶어서 접근통제를 할 필요가 있는데 이것에 대한 자료는 많으나 나에게 딱 맞는 설명은 찾기가 어렵습니다.

svn은 http로 설정이 되어 있다는 가정에서 설명을 합니다.
먼저 httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
#svn의 권한 설정을 사용하게 함
LoadModule authz_svn_module modules/mod_authz_svn.so
DAV svn
SVNPath D:reposproject
AuthzSVNAccessFile d:/repos/project/conf/authz
AuthType Basic
AuthName “project”
AuthUserFile D:/www/subversion1.5.5/httpd/conf/passwd
Require valid-user

사용자는 D:/www/subversion1.5.5/httpd/conf/passwd의 설정을 사용하고
접근통제는 아래의 파일에서 합니다.
d:/repos/project/conf/authz
[groups]
projectteam=parknj,honggd
adminteam=honggd

#관리자그룹만 사용가능함
#관리자는 root를 rw를 해주면 전체에 접근이 가능하고
[/]
@adminteam=rw

#사용자지정, projectteam 그룹의 사용자는 아래의 경로에 read, write 가능하게 설정합니다.
#svn경로는 http://myhost/svn/project/web-spa
[/web-spa/trunk]
@projectteam=rw

이상, 접근통제 간단 설정입니다. 아 그리고 http는 재시작 해야 합니다.끝.



출처 - http://www.eahn.kr/wordpress/?p=489







'IDE & Build > Subversion' 카테고리의 다른 글

svn - 저장소 디렉토리 구조  (0) 2013.06.10
subversion 설치 매뉴얼  (0) 2012.03.11
Trac  (0) 2012.03.11
svn issue : format: permission denied  (0) 2012.03.11
이클립스에서 SVN 사용 - SVN에 프로젝트 업로드 하기  (0) 2012.03.11
Posted by linuxism
,