文書の過去の版を表示しています。
Mac OS X v10.6でSubversionリポジトリのパスベース認証を行う
Snow Leopardからmod_dav_svnが標準で入っているようで、WebDAVを用いたSubversion環境を作りやすくなったっぽいので挑戦してみたメモ。
前提条件
- Mac OS X v10.6.6(試した環境)
- Subversion 1.6.5(システム標準)
- Apache 2.2.15(システム標準)
- プロジェクトごとにリポジトリを作り、プロジェクトごとにアクセス制御出来るようにする。
- リポジトリ置き場:/doko/soko/svn/repos/
httpd.confの編集
/etc/apache2/httpd.conf のLoadModuleの最後に以下を追加。
$ sudo emacs /etc/apache2/httpd.conf LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so
viを使えないヘタレ野郎です。すいません。
mod_dav_svnの設定
/etc/apache2/other/subversion.conf でmod_dav_svnの設定をする。拡張子が.confならファイル名は何でもおk。
<IfModule dav_svn_module> <Location /svn-repos> DAV svn SVNListParentPath on SVNParentPath /doko/soko/svn/repos </Location> </IfModule>
リポジトリの所有者の変更
$ sudo chown -R _www:_www /doko/soko/svn/repos
敢えて変な設定をしてなければ、パーミッションは特に弄る必要なし。設定するなら755とかその辺で。
確認
ここまでで問題なく設定出来ていれば、apacheを再起動後、チェックアウトやブラウザからリポジトリの表示が出来るようになっているはず。
現段階では、Subversionサーバにアクセス出来る人なら誰でも、無制限でリポジトリを操作出来るので要注意。
アクセス制御
subversion.confを再度開き、認証に必要なの設定を追加する。
<IfModule dav_svn_module> <Location /svn-repos> DAV svn SVNListParentPath on SVNParentPath /doko/soko/svn/repos Satisfy Any # 匿名ユーザーを許可 Require valid-user # それでダメなら正規ユーザーを要求 AuthType Basic # ベーシック認証を使う AuthUserFile /doko/soko/svn/htpasswd # ベーシック認証のユーザーとパスワード情報 AuthzSVNAccessFile /doko/soko/svn/authz # リポジトリのアクセス制御情報 </Location> </IfModule>
正規ユーザーの設定
<ilcode>AuthUserFile</ilcode>で指定したファイルにベーシック認証ユーザーを追加する。
$ sudo htpasswd -c /doko/soko/svn/htpasswd Decomo New password: Re-type new password: Adding password for user Decomo
2人目以降、つまりhtpasswdが既にある場合は-cオプションは付けない。さもないと上書きされる。
リポジトリのアクセス制御の設定
<ilcode>AuthzSVNAccessFile</ilcode>で指定したファイルにアクセス制御情報を書く。
[groups] admins = Decomo [/] * = r [Project1:/] @admins = rw [Project2:/] @admins = rw [secret:/] Decomo = rw * =
コメント