wiki:TracPermissions

アクセス制御とパーミッション

Trac はシンプルなアクセス制御システムを使用しています。大文字小文字は区別されます。

パーミッションの付与は trac-admin ツール、または (バージョン 0.11 の新しい機能では) 管理 (英語版では Admin) Web インタフェースの 一般設定 / パーミッション (英語版では General / Permissions) パネルを使用して操作します。

このページで説明するデフォルトのパーミッションポリシーに加え、他のパーミッションポリシーを使用することができます。プラグインを有効化し、 TracIni[trac] permission_policies リストのエントリに追加してください。詳細は TracFineGrainedPermissions を参照してください。

認証していないユーザは "anonymous" としてシステムにアクセスします。 "anonymous" ユーザには anonymous/guest ユーザの権限を割り当てます。 権限が与えられていない Trac のモジュールはナビゲーションバーに表示されません。 これらの権限に加えて、登録したユーザ (HTTP 認証を行ったユーザ) には個別に権限を付与することができます。ログインしたすべてのユーザは "authenticated" という仮想グループに所属します ("authenticated" は "anonymous" からパーミッションを継承します)。

Web Admin でのタブ

この機能はバージョン 0.11 で追加されました。

このタブにアクセスするには TRAC_ADMIN 権限 が必要です。以下の要領で権限を付与してください (trac-admin スクリプトを使用します):

  $ trac-admin /path/to/projenv permission add bob TRAC_ADMIN

ユーザ bob には管理 (英語版では Admin) タブが表示されるようになり、パーミッションのメニューにアクセスできるようになります。このメニューでは、以下に記述される全ての機能を Web ブラウザから使用でき、サーバへの root 権限でのアクセスは必要としません (ユーザアカウントに適切なパーミッションが付与されている必要があります)。

An easy way to quickly secure a new Trac install is to run the above command on the anonymous user, install the  AccountManagerPlugin, create a new admin account graphically and then remove the TRAC_ADMIN permission from the anonymous user. (訳者註: secure と書いてありますがセキュリティ的に脆弱な瞬間が発生するため、お薦めできません。コマンドを使用してください。)

付与できる権限

あるユーザで全ての権限を有効にしたい場合、 TRAC_ADMIN 権限を使用してください。 TRAC_ADMIN 権限を持っているユーザは *NIX システムでの root と同じように、いかなる操作も行うことができます。

または Trac の機能ごとに異なる種類の権限を、ユーザごとに個別に付与することができます。(パーミッション名は大文字/小文字を区別します):

リポジトリブラウザ

BROWSER_VIEW リポジトリブラウザ でディレクトリの一覧表示を行う
LOG_VIEW リポジトリブラウザ でファイルとディレクトリのリビジョンログを表示する
FILE_VIEW リポジトリブラウザ でファイルを表示する
CHANGESET_VIEW リポジトリへのチェックイン を表示する

チケットシステム

TICKET_VIEW 登録済みの チケット を表示し、 チケットクエリ を実行する
TICKET_CREATE 新規 チケット を登録する
TICKET_APPEND チケット にコメントや添付ファイルを追加する
TICKET_CHGPROP チケット 属性 (優先度 (Priority), 担当者 (Owner), キーワード (Keywords)など) を変更する。ただし例外があり、説明 (Description) の編集は不可能で、ログイン名やユーザ設定 (Pref) から取得したメールアドレスを関係者 (Cc) に追加/削除する場合に他のユーザを対象にできない。
TICKET_MODIFY TICKET_APPENDTICKET_CHGPROP の両方に加え、 チケット の解決を可能にする。チケットの担当者を制限している場合は、担当者となりうるユーザの リスト に使用される
TICKET_EDIT_CC 関係者 (英語版では Cc) のリストを直接編集できる
TICKET_EDIT_DESCRIPTION 説明 (英語版では description) フィールドを編集できる
TICKET_EDIT_COMMENT チケットのコメントを編集できる
TICKET_ADMIN 全ての TICKET_* 権限に加え、チケットへの添付ファイルの削除したり、チケットの報告者 (Reporter) や、説明 (Description) フィールドの変更が可能となる。また  WebAdmin のパネルを通してチケット属性を管理できる

注意: "チケットを見る" (英語版では "view tickets") ボタンは、 REPORT_VIEW 権限で表示されます。

ロードマップ

MILESTONE_VIEW マイルストーンを表示する。マイルストーンにチケットを割り当てる
MILESTONE_CREATE 新しいマイルストーンを作成する
MILESTONE_MODIFY 既に存在するマイルストーンを編集する
MILESTONE_DELETE マイルストーンを削除する
MILESTONE_ADMIN 全ての MILESTONE_* 権限を持つ
ROADMAP_VIEW ロードマップ を表示する, (すでに) MILESTONE_VIEW と同じではない  #4292 参照
ROADMAP_ADMIN  #3022 で削除され、 MILESTONE_ADMIN に置き換えられた

レポート

REPORT_VIEW レポート を表示する。つまり "チケットを見る" (英語版では "view tickets") リンク
REPORT_SQL_VIEW レポート の SQL を表示する
REPORT_CREATE 新しい レポート を作成する
REPORT_MODIFY 既に存在する レポート を編集する
REPORT_DELETE レポート を削除する
REPORT_ADMIN 全ての REPORT_* 権限を持つ

Wiki システム

WIKI_VIEW 既に存在する Wiki ページを表示する
WIKI_CREATE 新しい Wiki ページを作成する
WIKI_MODIFY Wiki ページを編集する
WIKI_RENAME Wiki ページのページ名を変更できる
WIKI_DELETE Wiki ページと添付ファイルを削除する
WIKI_ADMIN 全ての WIKI_* 権限に加え、 読み込み専用 ページを管理する

パーミッション

PERMISSION_GRANT パーミッションを追加および付与する
PERMISSION_REVOKE パーミッションを削除およびはく奪する
PERMISSION_ADMIN 全ての PERMISSION_* 権限を持つ

その他

TIMELINE_VIEW タイムライン を表示する
SEARCH_VIEW 検索 の表示と実行
CONFIG_VIEW Trac について (英語版では About Trac) のページに追加して、現在のコンフィグやインストールされているプラグインの表示を可能にする
EMAIL_VIEW trac セクションの show_email_addresses オプションが false でもメールアドレスを表示する

権限の付与

trac-admin を使用してユーザに権限を与えて下さい。現在設定されている権限は以下のコマンドで一覧できます:

  $ trac-admin /path/to/projenv permission list

次のコマンドはユーザ bob にレポートの削除権限を与えます:

  $ trac-admin /path/to/projenv permission add bob REPORT_DELETE

permission add コマンドでは複数の権限を扱うことができます:

  $ trac-admin /path/to/projenv permission add bob REPORT_DELETE WIKI_CREATE

次のコマンドはユーザ bob に管理者権限を与えます:

  $ trac-admin /path/to/projenv permission add bob TRAC_ADMIN

パーミッショングループ

二つのビルトイングループ "認証済み (authenticated)" と "匿名 (anonymous)" があります。
ログインしていないユーザは自動的に "匿名 (anonymous)" グループに属します。
ログインしたユーザは "認証済み (authenticated)" グループに属します。
"認証済み (authenticated)" グループの権限は "匿名 (anonymous)" グループの権限を継承します。
例えば、"匿名 (anonymous)" グループが WIKI_MODIFY 権限を持っていれば、"認証 (authenticated)" グループに WIKI_MODIFY 権限を与える必要はありません。

カスタムグループは二つのビルトイングループから権限を継承します。

パーミッションをグループ化してロール (developeradmin、etc.) を構成することができます

  $ trac-admin /path/to/projenv permission add developer WIKI_ADMIN
  $ trac-admin /path/to/projenv permission add developer REPORT_ADMIN
  $ trac-admin /path/to/projenv permission add developer TICKET_MODIFY
  $ trac-admin /path/to/projenv permission add bob developer
  $ trac-admin /path/to/projenv permission add john developer

グループのメンバーは permission list を引数なしで起動すると見ることができます; 出力される結果にはグループのメンバが含まれています。 グループ名には小文字を少なくとも1文字使ってください。すべて大文字の名前は権限名のために予約されています。

グループと権限を追加する

あなたが望むようにパーミッショングループを作り、ユーザを割り当てて、そのグループに権限を付与することができます。

以下は、新しいグループ beta_testersbob というユーザを割り当てて、 beta_testers に WIKI_ADMIN の権限を付与する例です ( その結果 bob は WIKI_ADMIN という権限を引き継ぐでしょう ) 。

   $ trac-admin /path/to/projenv permission add bob beta_testers
   $ trac-admin /path/to/projenv permission add beta_testers WIKI_ADMIN

パーミッションを削除する

パーミッションは 'remove' コマンドを使用して削除します。例:

このコマンドは、ユーザ bob から レポートを削除する権限を削除します:

  $ trac-admin /path/to/projenv permission remove bob REPORT_DELETE

permission add と同様に、このコマンドは複数の権限名を扱うことができます。

特定のユーザからすべての権限を削除することもできます:

  $ trac-admin /path/to/projenv permission remove bob '*'

または、すべてのユーザからある権限を削除することもできます:

  $ trac-admin /path/to/projenv permission remove '*' REPORT_ADMIN

デフォルトのパーミッション

匿名 (anonymous) のユーザは、デフォルトで Trac 内の全てに対して 参照 (view) 権限を持ちますが、作成 (create) および変更 (modify) の権限はありません。 加えて、 認証済み (authenticated) のユーザは チケットと Wiki ページに関する作成 (create) 及び変更 (modify) の権限を持ちます。

匿名 (anonymous)

 BROWSER_VIEW 
 CHANGESET_VIEW 
 FILE_VIEW 
 LOG_VIEW 
 MILESTONE_VIEW 
 REPORT_SQL_VIEW 
 REPORT_VIEW 
 ROADMAP_VIEW 
 SEARCH_VIEW 
 TICKET_VIEW 
 TIMELINE_VIEW
 WIKI_VIEW

認証済み (authenticated)

 TICKET_CREATE 
 TICKET_MODIFY 
 WIKI_CREATE 
 WIKI_MODIFY  

See also: TracAdmin, TracGuide and TracFineGrainedPermissions