Version 2 (modified by trac, 14 years ago) (diff) |
---|
アクセス制御とパーミッション
Table of Contents
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_APPEND と TICKET_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 権限を与える必要はありません。
カスタムグループは二つのビルトイングループから権限を継承します。
パーミッションをグループ化してロール (developer、admin、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_testers に bob というユーザを割り当てて、 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