CENTOS5でTrac&Subversionのインストール
CENTOS(REDHAT系)にTRAC&Subversionをインストールした後の、アクセス制限など忘れやすいことの補足事項
あくまで設置メモで、うまくいきますが、まだまだロスが多いかもしれないです。
とりあえずTrac,Subversionインストールはこちらを参考
http://tech.tenki.cc/archives/9
http://blog.enjoitech.jp/detail.php?aid=110
そのままだと
の問題点があるので、そこらへんを変更。
subversionでのアクセス権限の設定をします。
リポジトリが増えたら変更していく必要あり。
権限は全体からプロジェクトに降りていきます。
権限を空にすると何も出来ない権限になります。
/home/svn/conf/svnauth.conf を編集
[groups] manager = admin everyone = user1,user2 [/] @manager = rw @everyone = rw [/himitsuProject:/] @manager = rw @everyone =
参考:
http://d.hatena.ne.jp/ykog/20070108/p1
http://trac.edgewall.org/wiki/TracFineGrainedPermissions
trac.htpassの設定
設定したユーザ名(この場合、admin,user1,user2)の情報を、/usr/share/trac/trac.htpasswdに設定しておきます。
これで、subversionからのアクセスで認証が設定されるようになります。
apacheの設定
設定条件:
- subversionルートフォルダ(SVNParentPath):/home/svn
- subversion-httpアクセス(Location):http://***/repos
- subversionアクセス権限ファイル(AuthzSVNAccessFile):/home/svn/conf/svnauth.conf
- ベーシック認証ファイル(AuthUserFile):/usr/share/trac/trac.htpasswd
の設定にしています。
subversionとtracのアクセス制限は共通。
下記をsubversion.conf(LoadModule以外)をコメントアウトしてhttpd.confの"
<Location "/repos"> DAV svn SVNParentPath /home/svn/ AuthzSVNAccessFile /home/svn/conf/svnauth.conf AuthType Basic AuthName "Authorization Realm" AuthUserFile /usr/share/trac/trac.htpasswd Require valid-user </Location> Alias /trac/ "/usr/share/trac/htdocs/" <Location "/cgi-bin/trac.cgi"> SetEnv TRAC_ENV "/usr/share/trac/myproject.db" </Location> ### You need this to allow users to authenticate <Location "/cgi-bin/trac.cgi/login"> AuthType Basic AuthName "trac" AuthUserFile /usr/share/trac/trac.htpasswd Require valid-user </location> <Location /trac> SetHandler mod_python PythonDebug On PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /home/trac PythonOption TracUriRoot /trac AuthType Basic AuthName "trac" AuthUserFile /usr/share/trac/trac.htpasswd Require valid-user </Location> #<LocationMatch "/trac/.*/login"> # AuthType Basic # AuthName "trac" # AuthUserFile /usr/share/trac/trac.htpasswd # Require valid-user #</LocationMatch>
あとは、apacheの設定確認後リスタート
>service httpd configtest >service httpd restart
Subverisonの読み込み確認。
windowsならTortoiseSVNなどからhttp://***/repos/*設定したリポジトリ名*/ にアクセスした際、パスワード認証が出ることを確認して下さい。
※初期インポート時には、trunk,branches,tagsフォルダを作成してください。
これも初期設置簡単に出来そうですが、まだ調べてません--;
参考:
http://www.gside.org/Gentoo/subversion/subversion_client.html
TRACの確認
http://***/trac/にBASIC認証をしてアクセスして見えていたらOK。
リポジトリブラウザがForbiddenになっているのを確認して、ログインして見えていたら大丈夫です。
唯一の問題は、tracにアクセスした時点でログインするので、ブラウザを閉じないとログアウト出来ないことですが、
楽なのでこのままでいってます。
嫌な場合は、
リポジトリの作成
svnadmin create /home/svn/Test chown -R apache:apache /home/svn/Test
tracの連動
trac-admin /home/trac/Test initenv Project Name [My Project]> 任意のプロジェクト名を入れる Path to repository [/path/to/repos]> svnリポジトリの場所 chown -R apache:apache /home/trac/Test
default_charset = utf-8
管理者の権限設定
*を使うと簡単に出来るみたいですが、なぜかうまくいかなかったので、一個一個for文で処理しています。
うーん。
※/home/trac/Testの部分はプロジェクトを指定
※authenticated はユーザーを指定
for i in BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW; do trac-admin /home/trac/Test permission add authenticated ${i}; done
anonymousを削除する(初期で入っているので、ログインしないとみられないようにする)
for i in BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW; do trac-admin /home/trac/Test permission remove anonymous ${i}; done
参考:
http://mtamaki.com/trac/mtamaki/wiki/TracPermissions
権限の確認
trac-admin /home/trac/Test permission list
これでSubversion使えますので、プロジェクト追加毎にリポジトリの作成とTracとの連動がいりまふ。
参考:
http://d.hatena.ne.jp/ykog/20070108/p1
http://reguzy.jp/trac/wiki/TracPermissions