ETC

[SVN] 특정 디렉토리/파일 권한 설정

MuGrammer 2012. 2. 4. 04:12


특정 디렉토리/파일 권한 설정

목적 : 계정별로 특정 디렉토리나 파일에 대한 읽기/쓰기 권한을 설정하여 승인된 사용자들만 수정할 수 있도록 하여 의도치 않은 변경을 방지한다.

설정순서 :

  1. svnserve.conf 수정
  2. passwd 수정
  3. authz 수정

TEST 환경

  1. Repository Root : C:\SVNRepository
  2. Repository : TEST_Repository


1. svnserve.conf 수정

위치 : Repository Root\Repository\svnserve.conf
         ex) C:\SVNRepository\TEST_Repository\svnserve.conf

아래 항목에 대한 주석을 해제하고 환경에 맞게 지정한다.

# 인증되지 않은 사용자는 read만
anon-access = read
# 인증된 사용자는 write 가능
auth-access = write
# 계정과 비밀번호를 설정할 파일 지정
password-db = passwd
# 인증정보를 설정할 파일 지정
authz-db = authz
# 저장소의 인증영역 지정
realm = TEST_Repository


2. passwd 수정

계정과 해당 계정의 비밀번호를 지정한다. 한줄에 하나의 계정에 대한 설정만 가능하다.

ex) mugrammer = mugrammer

패스워드를 해당 계정 사용자가 직접 변경할 수 없다는 점이 좀 흠이라 생각한다.
변경할 수 있나?? 잘 모르겠다..

3. authz 수정

그룹을 지정하고 해당 그룹에 소속될 계정을 설정한다.

TEST_Repository 하위에 components, shared, webapps라는 디렉토리가 존재한다. shared는 중요설정부분들이 들어있어 일반 사용자가 함부로 수정할 수 없어야 한다. 그리고 webapps의 하위에는 여러파일들과 디렉토리가 존재한다. 일반사용자는 webapps의 하위 디렉토리는 수정 가능하지만 webapps 바로 밑에 있는 xml파일과 cmd 파일은 수정할 수 없어야 한다. 해당 파일들은 admin의 구성원들만 수정할 수 있다.

위의 요구사항에 따른 권한 그룹을 설정을 해보자면 다음과 같다.

admin 그룹을 생성하고 그룹구성원으로 mugrammer를 지정하고 user의 그룹구성원으로는 testuser를 지정한다.

[groups]
admin = mugrammer
user = testuser

repository에 형상관리 소스를 추가할 수 있게 하기 위하여 Repository Root에 write 권한을 admin에게 부여한다. 그리고 일반 사용자는 해당 항목을 checkout 할 수 있도록 read 권한만 부여한다. read 권한이 없으면 일반 사용자는 접근 자체가 제한된다.

[/]
@admin = rw
@user = r

만약 / 에 read 권한이 없으면 접근 자체가 되질 않는다.

예) / 에 read 권한을 부여하지 않고 svn://localhost/TEST_Repository 실행시


components 디렉토리는 admin, user 모두 수정 가능

[/components]
@admin = rw
@user = rw


shared는 admin만 수정 가능

[/shared]
@admin = rw
@user = r


webapps는 admin, user 모두 수정 가능

[/webapps]
@admin = rw
@user = rw

webapps 하위 파일들 중 xml과 cmd 파일은 admin만 수정 가능

[/webapps/*.xml]
@admin = rw
@user = r

[/webapps/*.cmd]
@admin = rw
@user = r


write 권한이 없음에도 불구하고 수정 후 commit을 하려 하면 아래와 같은 메시지 창이 뜬다.


이상으로 디렉토리별 권한 설정에 대해서 알아보았다.

물론 이 설정이 완벽하다고 자신있게 말을 할 수 있는건 아니다.
어떠한 설정이 최적인지는 조금더 다양한 테스트를 해봐야 하겠지만 우선 이러한 방법도 있다는 참고 사항 정도로는 적합하다 생각이 든다.

좀 더 쉽고 간편하게 설정할 수 있는 방법이 있으면 좋으련만..

참고로 passwd와 authz 파일은 수정 후 재기동을 굳이 하지 않아도 된다.


반응형

'ETC' 카테고리의 다른 글

[SVN] 이번엔 svn needs-lock이다..  (0) 2012.02.06
[SVN]Path-Based Authorization  (0) 2012.02.06
[SVN] Repository 생성  (0) 2012.02.03
Weblogic10.0 + jdk 1.6 설치  (0) 2012.02.01
공백포함 파일 검색 및 처리  (0) 2012.01.30