Ubuntu 10.04 LTS 64bitインストールメモ/その4(Subversion,(AuthUserFile,AuthzSVNAccessFile))
自分用メモです。
Ubuntu 10.04 LTS 64bitインストールメモ/その2 - ttmmrr(@o_tmr)の日記で放置してたsubversion+apache2の認証
参考にしたページ
dav_svn.conf
以前の/etc/apache2/mods-available/dav_svn.confを編集し、
- コメントアウト[
AuthzSVNAccessFile以外]を解除(先頭の#を削除) - Require valid-userを追記
する。
<Location /svn> DAV svn SVNParentPath /var/lib/svn SVNListParentPath on AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz Require valid-user </Location>
AuthUserFile dav_svn.passwd
apache2-utilsパッケージに入っているhtpasswdというコマンドを使用する。
まずはダミーで、「hogeユーザのパスワード'hoge'」を登録し、「tarouユーザのパスワードを'tarou'」で登録する
sudo su - cd /etc/apache2 htpasswd -cb /etc/apache2 hoge hoge htpasswd -b /etc/apache2 tarou tarou
# -cオプションはファイルを作成するときだけ使用する。
ダミーのhogeユーザを削除する
htpasswd -D dav_svn.passwd hoge
おまけ
ユーザ名一覧のテキストファイルを準備しておいて、初期パスワードを一括で生成できると便利。
ここではdav_svn_users.txtというファイルに一行に一ユーザ名が書かれているとする。
tarou jirou naoto
コマンドは
for n in `cat dav_svn_users.txt` ; do htpasswd -b dav_svn.passwd $n $n; done
とする。
AuthzSVNAccessFile dav_svn.authz
AuthzSVNAccessFileで指定するファイルには
- 各リポジトリに、ユーザ毎の読み書きの権限
を記述します。
詳しくは
Subversionのインストールと設定(Apache編)を参考
#リポジトリ:repos 内の/branches/doc/bug-1のアクセス権を設定します。 #hogeは読み書き、 #fugaは読み込み、 #mageはアクセス不可です。 [repos:/branches/doc/bug-1] hoge = rw fuga = r mage = #全てのユーザーは/branches/doc/に読み込みのアクセスが可能です。 [repos:/branches/doc/] * = r #上記でfugaは/branches/doc/bug-1に読み込みのみのアクセスしかありませんが、 #その下のact-1以下のディレクトリではこちらの設定が優先されます。 [repos:/branches/doc/bug-1/act-1] fuga = rw # /branchesディレクトリへのアクセスを禁止します。 [/branches] * =
apache2を再起動。
sudo /etc/init.d/apache2 restart
だけど
パスワード認証はうまくいったけど、AuthzSVNAccessFileによる読み書きの権限がうまくできない。
なんでかな?
orz