[OS]/Embedded&Linux

[INSTALL] 나도 Trac을 써보자! Apache-2.2.2/SVN-1.3.1/Trac-0.9.5/FastCGI (6) - 권한 설정

하늘을닮은호수M 2007. 4. 10. 13:43
반응형

출처 : http://classpath.egloos.com/2048596

이 글에 들어있는 내용

1. apache + svn 의 권한 설정
2. apache + trac 의 권한 설정

사실 svn 자체에도 권한을 부여하는 항목이 있습니다. 하지만 여기서는 subversion 을 데몬이나 inetd 형태로 작동시키지 않고, http 를 통해 접근하고 사용하는 방법에 대해 이야기 하도록 하겠습니다.

1. apache + svn 의 권한 설정.

(0) 해당 저장소의 파일 시스템 권한을 먼저 확인하셔야 합니다.

저같은 경우에 apache 서버는 apache 유저로 실행 됩니다. 이 유저는 svnusers 그룹에 같이 포함시켜 두었구요.

따라서 svnadmin create /path/to/svn/repos 했다면, 다음과 같은 두 명령어를 실행합니다.

chgrp -R svnusers /path/to/svn/repos
chmod -R g+rw
/path/to/svn/repos

(1) 매우 쉬운 방법

이 방법은 정말 간단합니다. 단지 단점이 있다면 비밀번호가 일반 텍스트로 인터넷 공간을 왔다갔다 한다는 것이지요.
- apache 인증 파일을 생성한다. (최초 사용자 등록)

htpasswd2 -cm /data/www/localhost/trac/newface/apache-auth-file admin

* -c 옵션은 최초에 파일을 생성할 때 필요한 옵션입니다.
-m 옵션은 비밀번호를 md5 형태로 저장하라는 것이구요,
apache-auth-file 는 비밀번호 파일 이름입니다.(디렉터리 명이 아닙니다)
디렉터리와 파일명은 특별히 지정된 것이 없습니다.
마지막의 admin 은 사용자 아이디입니다.

위의 명령어를 실행하면 비밀번호를 물어봅니다. 두번 입력해 주면 됩니다.

- 추가 사용자를 등록한다.

htpasswd2 -m /data/www/localhost/trac/newface/apache-auth-file testuser

* -c 옵션은 사용하지 않습니다. testuser 라는 사용자를 추가 하였습니다.

- 접근 권한을 설정합니다. 이전에 [INSTALL] 나도 Trac을 써보자! Apache-2.2.2/SVN-1.3.1/Trac-0.9.5/FastCGI (4) 에서 설정했던 파일을 엽니다. 권한 부분이 주석처리 되어있을 것입니다. 주석을 해제하고 다음과 같이 고친 후 저장. 아파치를 재 기동합니다.


DAV svn
SVNPath /data/svn/newface
AddDefaultCharset utf-8
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/www/localhost/trac/newface/apache-auth-file
Require valid-user



- 테스트.

http://localhost/svn/newface 로 접속해서 ID/PASSWORD 를 물어보는지 확인해 봅니다. 커밋도 한번 해보시죠. ^^

(2) 조금 복잡한 방법

이 방법은 (1)의 방법을 확장하여 디렉터리 별로 권한을 부여할 수 있는 방법입니다. 물론 역시 비밀번호는 일반 텍스트로 인터넷 공간을 날아다닙니다.

- 저와 같은 방법으로 apache 와 subversion 을 설치하신 분들은 이미 아래와 같은 내용이 47_mod_dav_svn.conf 파일에 들어있을 것입니다. 없다면 적용될 수 있는 파일(httpd.conf 같은)에 추가해 주세요.



LoadModule authz_svn_module modules/mod_authz_svn.so



- 다음의 라인을 추가합니다.


....
AuthzSVNAccessFile /data/www/localhost/trac/newface/apache-auth-access-file


* 물론 해당 파일에 대한 디렉터리 및 파일명은 특별한 제한이 없습니다.

- 해당 파일의 내용은 다음과 같습니다.
[newface:/]
* = r
[newface:/new_repos]
test = rw
admin =
[newface:/repos]
* = rw
[newface:/repos/under_svn]
admin = rw
* =

[repos_name:path] 형태로 각 섹션이 구성됩니다. 차례대로 설명해 보자면 newface 저장소의 / 디렉터리는 모두 읽기만 가능합니다. /new_repos 디렉터리는 test 계정은 읽고 쓰기가, admin 계정은 권한이 없습니다. /repos/under_svn 은 admin 만 읽고 쓰기 권한이 있고, 다른 계정은 접근 불가입니다.

아파치를 재기동하고 접속하여 봅니다.

(3) SSL 로 접속하기.

이건 다음기회에..

2. apache + trac 의 권한 설정.

* 앞서 trac 을 fast cgi 모드로 운영하기 있기 때문에 이 기준으로 설명합니다.

구축해둔 trac 환경에 사용할 사용자 아이디를 추가합니다.

trac-admin /data/www/localhost/trac/newface permission add testuser WIKI_VIEW WIKI_MODIFY WIKI_CREATE

위의 명령어는 testuser 라는 사용자를 추가하는데 위키 조회, 수정, 생성 권한을 주는 것이죠. 자세한 내용은 trac-admin --help 를 이용하면 볼 수 있습니다.

이렇게 추가한 사용자는 /data/www/localhost/trac/javalangspec/apache-auth-file 에도 존재하는 사용자여야 합니다.

httpd.conf 파일의 trac 관련 ScriptAlias 이후에 다음을 추가하시고요


AuthType Basic
AuthName "newface"
AuthUserFile /data/www/localhost/trac/javalangspec/apache-auth-file
Require valid-user


참고로 저렇게 해두면 trac 환경의 anonymous 계정에 부여한 작업은 로그인 없이도 할 수 있습니다.
만약 아예 anonymous 접근을 못하게 하려면 위의 경로를 /newface/login 에서 /newface 로 변경하시면 됩니다.

아파치 재기동 후 접속/로그인 테스트 해보세요. ^^
반응형