zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【SVN】authzSVNによるディレクトリごとの閲覧コントロール

【概要】

Subversionで、リポジトリ単位でbasic認証による認証は行っていたが、その下階層について、階層ごとに閲覧権限を制限したいという要望があった。authzsvnが使えたのでメモ。

【今回の要望】

ユーザグループ:

mgr:マネージャ。下記のすべてのリポジトリを閲覧、更新可能
gp?u:/reporoot/gpxディレクトリ以下のみ閲覧、更新可能

階層
reporoot/ …….htpasswdで一括Basic認証を設定
|-- gp1 ……mgrとgp1userのみ閲覧、更新可能
|-- gp2 ……mgrとgp2userのみ閲覧、更新可能
|-- mgr ……mgrのみ閲覧、更新可能
【作業メモ】
# モジュール確認
apachectl -M
#  dav_svn_module (shared)
# →OK


vi /etc/httpd/conf.d/httpd-ssl.conf

 <Location /reporoot>
  DAV svn
  SVNPath /var/www/svn/reporoot/repository
  AuthType Basic
  AuthName "Restricted Area"
  Require valid-user
  AuthUserFile "/var/www/svn/reporoot/.htpasswd"
  AuthzSVNAccessFile "/var/www/svn/reporoot/authzsvn.conf"
 </Location>

vi /srv/projects/reporoot/root.authzsvn.conf

[groups]
# Managers
mgr = mgr1,mgr2

# group users
gp1u = user1, user2
gm2u = user3, user4

[/]
@mgr = rw

[reporoot:/gp1]
@gp1u = rw

[reporoot:/gp2]
@gp2u = rw

[reporoot:/mgr]