2013年2月20日水曜日

リポジトリのユーザーアカウント&アクセス権限について

リポジトリの作成が終わったので、次は使う側のユーザーの設定になります。

リポジトリにコミットできるユーザーの制限や、
さらに読み込み、書き込みに制限をかけたりする事が出来ます。

また、指定のリポジトリだけ許可する場合や、
指定のリポジトリの特定のディレクトリのみ公開するみたいな設定も行えます。

たとえば、外注先にはここのディレクトリ以下のみ公開して、
そこで作業してもらう場合などに使えます!(・∀・)イイネ!!

まずは、ユーザーアカウントファイルを作成します。
ユーザーアカウントファイルで、ユーザーのID・パスワードを管理します。

■リポジトリのユーザーアカウントファイルの作成

AuthUserFile はユーザパスワード。htpasswd コマンドで作る。

「nakajima」ユーザーの追加&ファイル作成
htpasswd -b -c /var/www/svn/svn.users nakajima AAAAAA
Adding password for user nakajima
ファイルの中身を確認する
view /var/www/svn/svn.users
ユーザーの追加、変更は-cオプションははずす。
#「test」ユーザーの追加
htpasswd -b /var/www/svn/svn.users test test
次に、ユーザーのアクセス権限のファイルを作成します。

■アクセス権限ファイルの作成

記述方法は、[リポジトリ名]のセクション単位で記述していきます。
ただし、[groups]はユーザーグループを定義するセクション名にになります。
vi /var/www/svn/svn.access
# グループ定義
[groups]
#group = yamada, satou
group_manager = nakajima
group_developers = nakajima,test
 
# 全ユーザに全リポジトリ以下のアクセス不可
[/]
* = 

########################
# sampleリポジトリの設定
########################
[sample:/]
#sampleリポジトリの/以下をgroup_developersグループのユーザーに対して、読み書き権限を与える
@group_developers = rw

#sampleリポジトリの/commonディレクトリはユーザーtestは読み書き禁止にする
[sample:/common]
test = 
上記の設定で、sampleリポジトリに対して
commonというディレクトリと、aaa.txtというファイルをコミットした状態で、
2つのユーザーでチェックアウトなどをして比較してみると次のようになります。

・ユーザー:nakajimaの見え方は
common
aaaa.txt

TortoiseSVNのリポジトリブラウザなどからのcommonディレクトリの中身の表示のされ方



ユーザー:testの見え方
aaaa.txt

TortoiseSVNのリポジトリブラウザなどからのcommonディレクトリの中身の表示のされ方

画像のように、権限がないアカウントでは
リポジトリに含まれているファイルが表示されませんし、
更新やチェックアウトを行っても対象外になっています。

以上です(`・ω・´)ゞビシッ!!

0 件のコメント:

コメントを投稿