CentOS6.x Subversion

[CentOS]Subversionサーバをブラウザで管理できるSVNManagerを使おう - 導入編ではSVNManagerのインストール・セットアップからリポジトリの作成及びクライアントからのWebDAV経由でのアクセスまでを行いました



本編は「運用編」です。SVNManagerによるユーザやグループの管理、リポジトリへのアクセス制限の設定や既存リポジトリのSVNManagerへの取り込みを行なってみたいとおもいます

Recommend Book

Subversionを実用的に使おう

安心のオライリー本です

前回のおさらい

前回は、SVNManagerにてリポジトリ「test1」を作成しました

また、クライアント(TortoiseSVN)よりチェックアウトし、「docs」及び「src」ディレクトリを追加・コミットしました

また、このリポジトリにアクセスできるユーザは、SVNManager管理者である「system」ユーザのみの状態です

リポジトリアクセスユーザの追加

リポジトリ「test1」にアクセスできるユーザを追加してみたいと思います

大まかな手順は以下です

  1. ユーザの追加
  2. リポジトリ「test1」へのユーザのアクセス許可設定

ユーザの追加

SVNManagerに管理者でログインし、[User Admin]-[Add a new user to the repository system]を実行し、ユーザを登録します

注意

作成するユーザは管理者ではありませんので「Admin」にはチェックはつけません

入力項目最後の「Password」欄には現在ログインしている管理者ユーザ(system)のパスワードを指定します

これで「user001」ユーザが作成されました。同様に「user002」「user003」「user004」も作成しておきましょう

リポジトリへのアクセス権限設定

では、リポジトリ「test1」に対して、ユーザ「user001」「user002」がアクセスできる様に設定してみましょう

SVNManagerから[Repository Admin]-[Change User Privileges of a Repository]を実行し、表示されたリポジトリ一覧より「test1」を選択します

実際に設定した画面です

この設定だと、リポジトリ「test1」に対して以下の様なアクセス制限がつきます

ユーザ「user001」

  • test1リポジトリすべてに対して読み込み及び書き込みが可能です

ユーザ「user002」

  • リポジトリ全体に対する読み込みが可能
  • /src/以下に対しては書き込みも可能

これで、user001とuser002へのアクセス制限の設定はできました

一部のディレクトリだけ見せたくない場合の設定

/doc/の下に「見積もり」というディレクトリがあり、user002に対してはこの「見積もり」ディレクトリだけは見せたくない場合は以下の様な設定をします

上から3行目がその設定になります

user002    /docs/見積もり  no  no

Read:no, Write:no つまり、「docs/見積もり」については、読み込みも書き込みもできないという設定です。

これにより、user002はdocs以下は読み込めるが「見積もり」ディレクトリ以下については読み込みもできないことになります

ユーザをグループ化してアクセス制限したい

ユーザをグループ化して、リポジトリに対してグループ単位でアクセス制限を設定することができます

ここではグループ「TEAM-A」を作成し、リポジトリ「test1」に対してアクセス権を与える例を記載します

グループの作成

SVNManagerから[Group Admin]-[Create a new Group]を実行します

グループへのユーザ追加

グループができましたので、このグループに所属するユーザを設定します

SVNManagerから[Group Admin]-[Change a Group ]を実行し、グループ「TEAM-A」を選択します

上は、はuser003とuser004をTEAM-Aグループに追加した画面です

confirmボタン押下でグループにユーザが追加されます

リポジトリへのアクセス権限設定

リポジトリ「test1」にグループ「TEAM-A」所属ユーザがアクセスできる様に設定します

SVNManagerから[Repository Admin]-[Change Group Privileges of a Repository]を実行し、リポジトリ「test1」を選択します

上は、グループ「TEAM-A」に所属するユーザは、リポジトリ「test1」のすべてに対して読み込み権限がある場合の設定例です

グループかユーザかの違いだけで、前述のユーザに対する権限設定と考え方は全く同じです

他人数や他社と共同で開発する場合は、ユーザ単位で設定するよりグループ単位で権限設定した方が管理しやすいでしょう

SVNManagerで管理されていないリポジトリを管理下に置く方法

既にSubversionを運用中のサーバに対してSVNManagerをインストールした場合等は、既存のリポジトリをSVNManagerの管理下に置く必要があります

ここでは、/home/svn/repos/以下に「test2」というSVNManagerで管理されていないリポジトリがある前提で説明します

# ls -al /home/svn/repos/
合計 16
drwxr-xr-x. 4 apache apache 4096  8月 10 01:26 2013 .
drwxr-xr-x. 5 apache apache 4096  8月  9 19:52 2013 ..
drwxr-xr-x. 7 apache apache 4096  8月  9 22:07 2013 test1
drwxr-xr-x. 6 apache apache 4096  8月 10 01:26 2013 test2

(*)test1はSVNManager管理下のリポジトリです

管理下に置くには、SVNManagerから[Repository Admin]-[Import existing repositories not controlled by SVNManager]を実行します

上の様に、SVNManager管理外のリポジトリである「test2」が表示されていますので、「select」リンクをクリックすることによりSVNManagerの管理下になります

最後に

これで、ひと通り使えるようになったと思います

SVNManagerには、他にもDUMPをとったりリポジトリのDUMPをアップロードする機能があるようですが使ったことないです

これまではSubversionの管理が面倒でしたが、これでずいぶん楽になると思いますし、管理自体を他の人に譲れますね

目次

  • Page.1
    • SVNManagerを使おう - 導入編
  • Page.2
    • SVNManagerを使おう - 運用編

関連ページ