svn 디렉토리별 권한 설정..

Lshcraft의 이미지

안녕하세요. svn을 막 시작하려는 초보입니다.

제가 svn 서버를 하나 새로 구성을 했는데 디렉토리별 권한 설정이 잘 안되어 질문을 드립니다.

현재 인증방식을 Apache를 통하여 하도록 되어있구요..

svn 디렉토리는 /svn/repos 이고 권한 정책에 대한 것은 /svn/repos/conf/auth 라는 파일에 들어있습니다.
각 사용자별 아이디와 패스워드에 대한 정보는 htpasswd를 이용하여 /etc/httpd/conf/passwd 라는 파일로 저장했습니다.

먼저 httpd.conf 에 다음을 추가하였습니다.

DAV svn SVNPath /svn/repos

AuthzSVNAccessFile /svn/repos/conf/auth

AuthType Basic
AuthName "Sample Repository"
AuthUserFile /etc/httpd/conf/passwd
Require valid-user

/svn/repos/conf/svnserve.conf 파일은 다음과 같이 작성하였습니다.

[general]
anon-access = none
auth=access = write
authz-db = auth
realm = Sample repository

그리고 /svn/repos/conf/auth 파일은 다음과 같이 작성하였습니다. (ProjectA, ProjectB 라는 2개의 프로젝트가 있다고 가정합니다.)

[/]
@everyone = r

[/ProjectA]
@teamA = r
man1 = rw

[/ProjectB]
@teamB = r
man3 = rw

[groups]
teamA = man1,man2
teamB = man3,man4,man5

이런 구성에서 디렉토리별 권한 설정이 먹히질 않습니다. 웹상으로 http://[URL]/svn 하면 repository의 내용을 볼 수 있습니다만 권한이 없는 사용자에게도 모든 내용이 보여집니다.

예를들어 man4가 http://[URL]/svn 으로 들어가면 의도한 바로는 ProjectB 만 보여져야 하는데 ProjectA, ProjectB 둘다 보여집니다.

혹시 이 정책 파일이 안먹히나 해서 [/] 부분의 권한을 특정 한사람에게 주면 그때는 잘 동작 합니다.

유독 하위 디렉토리에 대한 권한 설정이 안먹히는데 제 짧고 갸날픈 지식으로는 도무지 방법을 모르겠네요..

도움을 부탁드립니다..

s0ulhacker의 이미지

저랑 설정이 조금 다르셔서 잘 모르겠습니다만..제가 한 설정에 의하면
서브버전 계정은 conf/passwd 파일에 아이디 = 패스워드 형식으로 계정을 넣었구요
디렉토리권한은 각 디렉토리마다 권한 젤 밑에 *=none 라는 항목을 넣었습니다.
즉,

[ProjectB]
@teamB = r
man3 = rw
*=none

이렇게요.
저는 svn://[URL]/svn 방식의 접속으로 접속하도록 구축했습니다.
물론 이렇게 하면 TortoiseSVN 같은 프로그램이 설치되어있어야 합니다만..
그냥 http로 접속해서도 SVN을 쓸수 있는 방법도 있나보죠?

s0ulhacker의 이미지

제가 사용한 passwd 파일에 계정주는 방식은
/svn/repos/conf/svnserve.conf 파일에
password-db = passwd 항목이 있어야하구요
위에 보니까 authz-db = auth 라고 되어있는데
authz 파일명을 auth 로 바꾸셨다면 상관이 없겠지만
기본적으로 conf 디렉토리에 authz 로 파일명이 되어있을겁니다.
잘 몰라서 헛소리했어도 양해해주시길..

Lshcraft의 이미지

말씀하신대로 디렉토리별로 * = none 을 추가해주니 제대로 동작하네요!!
근 몇주간을 삽질했던 문제였는데 이렇게 간단하게 해결이 되네요. 정말 감사합니다!

질문에 사용 OS를 깜빡하고 빼놓았네요..

svn을 페도라 기반으로 구축하여 사용하고 있습니다. 그래서 실제 checkout이나 commit 등은 리눅스를 통해 작업을 하고요..
웹상으로는 간단하게 repository를 보는 용도로만 사용하고 있습니다.

계정을 conf/passwd 파일에 ID = password 로 설정하셨다는 말씀은 일반 텍스트로 password를 저장하셨다는 말씀이신가요?
저도 처음엔 그렇게 했다가 뭔가 찝찝함이 많이 남아서 계정정보를 htpasswd를 이용하여 인코딩하여 저장하도록 설정하였거든요..
일단 사용자별 인증에는 문제없이 잘 돌아가고 있습니다.

그리고 auth와 authz의 경우 제가 파일명을 변경했습니다^^

다시한번 감사드립니다.

s0ulhacker의 이미지

^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.