SVN 다운로드 및 설치

http://subversion.apache.org/packages.html


Repository 생성

# svnadmin create --fs-type fsfs {repoName}


SVN 데몬 설정제어

cd /repoName

vi svnserve.conf


SVN 특정 서버  폴더 별 권한설정

1. 폴더 구성

/repo/source/design/*

/repo/source/source/*

2. conf/passwd 계정추가.

design 계정 : happy

source 계정 : smile 

3. conf/authz 파일이 있는데 우선 svn 서버가 이파일을 사용하도록 설정을 해줘야 한다.

conf/svnserve.conf 파일을 열어보면  ### authz-db = authz 이것이 주석 처리 되어 있는데 주석을 풀고 저장하면

authz 에 설정된 권한을 이용할 수 있다.

4. 여러 유저를 다 쓰기 귀찮으면 아래와 같이 그룹 지정.

[groups]

dev=auser,buser,cuser,duser

design=zuser,kuser,suser 

5. authz 파일안에 아래와 같은 format 으로 설정이 가능

[경로명]

유저 or @그룹 = 권한


[/repo/source/design]

* = 

@design = rw

reader = r

[/repo/source/source]

* = 

@dev = rw

'* = ' 의 의미는 전체에 대해서 권한을 삭제한다는 의미

r : 읽기권한 부여

w : 쓰기 권한 부여

rw : 읽기 쓰기 권한 부여


svn-authz 파일

[groups]
group_inner = abc, bcd .....
# 특정 프로젝트만 쓰면 되는 사용자들을 별도 그룹으로 했다
group_kats_pss = byc, abc .....

# 아래 두줄 : 모든 놈이 읽고 쓴다. 요 줄들은 주석처리했다
# [/]
# * = rw

# 내부직원그룹은 모든거에 대해 읽고 쓴다. 
[/]
@group_inner = rw

# lg 리파지토리의 /abc/pss 경로에 대해 특정 그룹의 사람들이 다 읽고 쓴다. 
[lg:/abc/pss]
@group_kats_pss = rw




SVN 백업

svnadmin dump %REPODIR% > %REPOBACKUP%
svnadmin dump /svn/repos > /backup/repos1.dump

SVN 복원
svnadmin load %REPODIR% < %REPOBACKUP%
svnadmin load /svn/repos < /backup/repos1.dump


설정파일위치: /svn/repos/conf/

# vi /svn/repos/conf/svnserve.conf

[general]

anon-access = none //익명 접근의 권한은 none 없음

auth-access = write //인증 접근의 권한은 write 읽기/쓰기

realm = My_First_Repository //프로젝트 명칭


authz-db=authz//인증 접근의 권한 설정 파일 위치


password-db = passwd //사용자 패스워드 저장 파일 위치

svnserve.conf : svn project1에 대한 일반적인 권한 설정

passwd : svn 사용자 ID/PW를 설정

authz : svn 접근에 대한 그룹 설정, 읽기/쓰기 권한 설정


SVN 계정발급 정책

  • 공통사항 : SVN 에서 아이디 발급시 sasl 을 이용한다
  • 계정 생성 방법 : saslpasswd2 -c –u 레파지토리이름 아이디-> 패스워드 입력
  • 계정 확인 : sasldblistusers2
  • 계정 삭제 : saslpasswd2 -d –u 레파지토리이름 아이디




1. 설치한 SVN 이 SASL을 지원하는지 확인   


# svnserve --version


svnserve, version 1.6.11 (r934486)
   compiled Apr 11 2013, 16:13:51 

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:


* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository. 


Cyrus SASL authentication is available.


SVN 버전 확인 명령어 실행시에 마지막에 Cyrus SASL authentication is available. 라고 뜨면 SASL이 지원되는 것입니다.




2. SVN 서버 설정 (SASL 사용하기) 


# cd /home/svn/[저장소 이름]/conf

# vi svnserve.conf (파일을 열어서 편집하고 저장하고 나옴)


[general]

anon-access = none (true : 누구나 읽기 가능, none : 안됨)

auth-access = write (인증된 사용자만 쓰기)

#assword-db = passwd (사용자 계정 정보 DB로 passwd 파일을 사용하겠다는 뜻) (SASL 사용시 주석처리)

#authz-db = authz (사용자 계정 권한 정보 DB로 authz 파일을 사용하겠다는 뜻) (SASL 사용시 주석처리)

realm = [Repository Group Name] (SASL 사용시 공백없어야 하며, 저장소별로 유니크한 값이어야 함)


[sasl] (SASL 암호화시 사용) 

use-sasl = true (SVN 비밀번호 암호화를 위해서 주석을 풀어줍니다)  (SASL 사용시 주석해제)

# min-encryption = 0
# max-encryption = 256 



3. SASL 패키지 설치하기  


# yum install sasl



4. SVN 사용자 계정 생성하기 (SASL 명령어 사용)


# saslpasswd2 -c -u [svnserve.conf 의 realm 값] [아이디]     (계정 생성하는 명령어)

Password : 비밀번호입력

Again (for verification): 비밀번호확인 


-c 옵션은 계정 생성

-u 옵션은 도메인 사용 (realm)


# sasldblistusers2     (계정 목록 확인하는 명령어)

[아이디]@[svnserve.conf 의 realm 값]: userPassword


# saslpasswd2 -d -u [svnserve.conf 의 realm 값] [아이디]     (계정 삭제하는 명령어) 

-d 옵션은 계정 삭제



자 예를 들어 svnserve.conf 파일에 realm = test_repo 라고 작성하였고,

아이디가 aaa123, 비밀번호가 bbb456 으로 계정을 생성하기로 합니다.


# saslpasswd2 -c -u test_repo aaa123

Password : bbb456

Again (for verification): bbb456 


# sasldblistusers2

aaa123@test_repo: userPassword (비밀번호는 보이지 않음, 관리자도 알 수 없음) 


# saslpasswd2 -d -u test_repo aaa123 
 

처음에 sasl를 썼을때는 계정이 제대로 생성이 된건지.. 비밀번호는 맞는 것인지.. 조금 알쏭 달쏭했습니다만,

realm 값만 주의해서 쓰면 됩니다.


그리고 계정 생성 또는 svnserve.conf 파일 수정시 svn 서버 재시작이 필요 없습니다.

그러니 차근차근 값을 변경해보면서 테스트하시면 됩니다.






  • No labels