[완료]Trac 설치시 사용자별로 소스보기를 제한할수 있는 방법이 있는지요?
글쓴이: stingray / 작성시간: 수, 2008/12/31 - 5:05오후
일반적으로 trac에서 티켓을 발행하는것은 로그인 사용자만 할당해서 처리할수 있는데, Brouse Source는 로그인을 안해도 소스를 볼수가 있습니다. 이를 막을수 있는 방법이 있는지요?
제가 프로젝트 디렉토리에 그룹권한을 바꿔가며 테스트 해보는데 잘 안됩니다. 아예 trac에 접근이 안되도록 할려는거였는데 권한을 가진 사용자도 아래와 같이 에러가 나면서 접근이 안됩니다.
Traceback (most recent call last): File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/web/api.py", line 339, in send_error 'text/html') File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/web/chrome.py", line 684, in render_template data = self.populate_data(req, data) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/web/chrome.py", line 592, in populate_data d['chrome'].update(req.chrome) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/web/api.py", line 168, in __getattr__ value = self.callbacks[name](self) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/web/chrome.py", line 460, in prepare_request for category, name, text in contributor.get_navigation_items(req): File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/ticket/web_ui.py", line 133, in get_navigation_items if 'TICKET_CREATE' in req.perm: File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 523, in has_permission return self._has_permission(action, resource) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 537, in _has_permission check_permission(action, perm.username, resource, perm) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 424, in check_permission perm) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 282, in check_permission get_user_permissions(username) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 357, in get_user_permissions for perm in self.store.get_user_permissions(username): File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/perm.py", line 173, in get_user_permissions db = self.env.get_db_cnx() File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/env.py", line 257, in get_db_cnx return DatabaseManager(self).get_connection() File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/db/api.py", line 76, in get_connection return self._cnx_pool.get_cnx(self.timeout or None) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/db/pool.py", line 101, in get_cnx cnx = self._connector.get_connection(**self._kwargs) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/db/sqlite_backend.py", line 126, in get_connection return SQLiteConnection(path, params) File "/usr/local/python/lib/python2.6/site-packages/Trac-0.11-py2.6.egg/trac/db/sqlite_backend.py", line 168, in __init__ % (getuser(), path)) TracError: The user jhlee requires read _and_ write permission to the database file /var/trac/project/INCHEON_NH/db/trac.db and the directory it is located in.
아 그리고 혹시 위의 에러에서 jhlee라는 사용자는 어디에 설정한 값을 참조하여 나오는걸까요?? 제 계정이 jhlee이긴 한데..제가 trac설정이나 apache설정에 딱히 설정한 부분이 없는데요..
The user jhlee requires read _and_ write permission to the database file /var/trac/project/INCHEON_NH/db/trac.db and the directory it is located in
두서없이 질문해서 죄송합니다.
trac이 너무 까다롭습니다. 흑..
2008년의 마지막날을 잘 보내시기바랍니다. 감사합니다.
Forums:
저의 경우에는..
요즘은 권한 설정을 안해봐서 구체적으로는 잊어버렸는데요..
디렉토리 권한 설정보다는 콘솔에서 trac-admin을 사용해서 할 수 있지 않나요?
접근자체를 막는 것은 http로그인 기능으로 막을 수 있도록 하는 방법이 trac홈페이지에 있는 것으로 알고 있습니다.
--------------------------------
http://www.elegantcoder.com
--------------------------------
http://www.elegantcoder.com
trac-admin.py
이거면 될것 같습니다
trac을 자체 서버
trac을 자체 서버 모드가 아닌 apache 연동 모드로 설정하고, svn 도 apache를 통해서 나가도록 설정해주고, 웹서버 기반 통합 인증을 사용하도록 하고, (약간 성가신 부분도 없지는 않지만) svn, trac에서 적절히 사용자/그룹 별로 권한 설정을 해주면 svn의 하위 디렉토리별 접근 관리를 할 수 있습니다.
자세한 내용은 가물가물 한데, trac의 메뉴얼과 svn의 메뉴얼을 함께 보시면 해답을 찾으실 수 있을 것 같습니다.
--
"The love you take is equal to the love you make." The End, by Beatles
--
"The love you take is equal to the love you make." The End, by Beatles
trac을 자체 서버
trac을 자체 서버 모드가 아닌 apache 연동 모드로 설정하였습니다.
svn 도 apache를 통해서 나가도록 설정하였습니다.
웹서버 기반 통합 인증을 사용하도록 하고(AccountManager 플러그인을 설치하려 합니다. 그런데 이게 맞는건지는 잘 모르겠습니다.)
svn 에서 적절히 사용자/그룹 별로 권한 설정을 conf의 authz파일을 수정해서 svn의 하위 디렉토리별 접근 관리를 하였습니다.
결국 아직 안된거는 Trac에 설치할 AccountManager라는 플러그인인데 이게 아파치 계정의 관리를 Trac을 통해 가능하게 해주는거더군요.
이것만 하면 처리가 될까요??
통합된 적절한 예제가 있으면 좋겠는데...아직 부분 단위로 처리해놓은 예제만 봐서리...
다시한번 매뉴얼을 읽어봐야겠습니다.
답변에 감사드립니다.
새해복많이 받으세요~
나는 너에게 너는 나에게
잊혀지지 않는 하나의 의미가 되고 싶다.
http://trac.edgewall.org/wiki
http://trac.edgewall.org/wiki/TracFineGrainedPermissions
여기에 보면 trac의 환경설정 파일에 SVN 권한 설정 파일의 위치를 등록하도록
나와있습니다.
이를 처리해주니 소스보기가 금지되는군요.
감사합니다. :)
===================================
나는 너에게 너는 나에게
잊혀지지 않는 하나의 의미가 되고 싶다.
나는 너에게 너는 나에게
잊혀지지 않는 하나의 의미가 되고 싶다.
댓글 달기