SQA Insider

ソフトウェア品質保証、ソフトウェアテストについてのメモ書き。

Bugzillaユーザー権限設定メモ

Bugzillaにおけるユーザーは、「Bugzillaに対してどのようなユーザー権限をもつか」(ユーザー権限)と「どのプロダクトに対してどのような権限をもつか」(アクセス範囲)というふたつの軸で定義する必要があります。どちらの軸を定義するにしてもグループの機能を使うのでちょっとわかりづらいですね。

今回はユーザー権限の設定について解説します。

ユーザー権限の解説

ユーザー権限の実体は、システム型をもつグループがそれに当たります。
以下に具体的な権限の内容について記します。

tweakparams			パラメーターおよび既定のユーザー設定のカスタマイズ
editusers			すべてのユーザーのユーザー権限の変更
creategroups			グループの設定
admin				カスタムフィールド、フィールド値、ワークフロー
bz_quip_moderators		ヘッドラインの承認
bz_sudoers			他ユーザーとしてふるまう
bz_sudo_protect			他ユーザーが自分としてふるまうのを防ぐ
editclassifications		クラス分類の設定
bz_canusewhineatothers		自分以外に対するリマインダーの利用
bz_canusewhines			リマインダーの利用
canconfirm			Bugの有効性確認
editcomponents			プロダクトの設定、フラグの設定
editkeywords			キーワードの作成
editbugs			Bugの報告

ユーザー権限設定のモデルケース

さて、どのような権限が用意されているかがかわったところで、実際の運用のことを考えてみたいと思います。ここではモデルケースとして、運用上のユーザー権限が以下の5つあるものとして設定してみます。

  • 主管理者: Bugzillaのパラメーターをいじることのできる特権的管理者
  • 管理者: Bugzillaのパラメーターはいじれないが、それ以外は何でもできる管理者
  • プロダクト管理者: 各プロダクトのマネージャー・リーダー
  • ユーザー: 管理者でない、ごくごく一般の利用者、バグ報告と、自身に対するリマインダーの作成ができる
  • ログインしていない人: 利用者でない可能性があるので、Bugzillaに対して何もできない

この5つをグループの設定で実現するには以下のよう設定します。

  • パラメーター requirelogin を有効にする。
  • グループ editbugs, bz_canusewhines がすべてのユーザーを含むようにする。 (正規表現 = .* )
  • 主管理者、プロダクト管理者に相当するグループを作成する。(root, productman)
  • グループの継承関係を以下の通りとする。
root (主管理者)						
	tweakparams					パラメーター、既定のユーザー設定
	editusers					すべてのユーザーのユーザー権限の変更
	creategroups					グループの設定
	admin (管理者)					カスタムフィールド、フィールド値、ワークフロー
		bz_quip_moderators			ヘッドラインの承認
		bz_sudoers				他ユーザーとしてふるまう
		bz_sudo_protect				他ユーザーが自分としてふるまうのを防ぐ
		editclassifications			クラス分類の設定
		productman (プロダクト管理者)		
			bz_canusewhineatothers		自分以外に対するリマインダーの利用
			canconfirm			Bugの有効性確認
			editcomponents			プロダクトの設定、フラグの設定
			editkeywords			キーワード

editusers, creategroups の権限を不特定多数に渡すと、意図せず権限昇格させてしまう危険性があるため特に注意が必要です。

アクセス範囲の解説については別途行います。