Manual:利用者権限

This page is a translated version of the page Manual:User rights and the translation is 99% complete.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎svenska • ‎čeština • ‎русский • ‎српски / srpski • ‎українська • ‎עברית • ‎ไทย • ‎ဘာသာ မန် • ‎中文 • ‎日本語 • ‎ꯃꯤꯇꯩ ꯂꯣꯟ • ‎한국어

利用者権限は、異なる利用者グループに割り当てられるアクセス(ページの編集や利用者の投稿ブロックなど)許可です。 MediaWikiには既定の利用者権限と利用者グループが付属していますが、これらはカスタマイズできます。 このページでは既定の利用者権限と利用者グループ、そしてそれらのカスタマイズについて説明します。

個別のウィキ利用者をグループに追加/除去する方法については、Help:利用者権限と利用者グループ Manual:MediaWiki での利用者グループの設定 を参照してください。

グループの権限の変更

既定の MediaWiki インストレーションでは、特定の権限を既定のグループに割り当てます (下記参照)。 LocalSettings.php 内の $wgGroupPermissions 配列を以下の構文で編集することで既定の権限を変更できます。

$wgGroupPermissions['group']['right'] = true /* または false */;
既定では $wgGroupPermissions は includes/DefaultSettings.php に設定されていますが、LocalSettings.php にはありません。 その場合はそのファイルにそれを追加する必要があります。

メンバーが複数のグループを持つときは、任意のグループの最も順位が高い権限を取得します。 匿名利用者を含む、すべての利用者は'*'グループに所属します。また、登録利用者は全て'user'グループに所属します。 既定のグループに加えて、同じ配列を使用して新しい任意のグループを作成できます。

以下の例では $wgWhitelistRead に挙げられたページ以外のページを全て閲覧不可能にした上で、登録利用者のみに対しては再び閲覧許可しています:

$wgGroupPermissions['*']['read'] = false;
# 以下の1行は既定値に含まれているため実際には必要ありません。'*' に false を設定しても、個別に true を設定した権限を持つグループに対しては無効になりません!
$wgGroupPermissions['user']['read'] = true;

次の例ではすべてのページの編集を無効にして、メールアドレスで確認された利用者に対してのみ再び有効にします。

# すべての利用者に対して無効にする
$wgGroupPermissions['*']['edit'] = false;
# user に対しても無効にする: 既定では '*' は編集を許可されていないが、'user' は編集できる
$wgGroupPermissions['user']['edit'] = false;
# メールアドレスの確認が済んだ利用者をグループに属させる
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# グループを利用者一覧から隠す
$wgImplicitGroups[] = 'emailconfirmed';
# 最後に、お望みのグループに true を設定する
$wgGroupPermissions['emailconfirmed']['edit'] = true;

グループの新規作成とそのグループへの権限の割り当て

利用者グループの権限を定義することで新しい利用者グループを作ることができます。コードの$wgGroupPermissions['<group-name>']で、'group-name'の所に利用者グループの実際の名前を入力してください。

権限を割り当てるだけでなく、次の3つのページを適切な内容で作るべきです。

  • MediaWiki:Group-<group-name> (内容: グループ名)
  • MediaWiki:Group-<group-name>-member (内容: グループのメンバーの名前)
  • MediaWiki:Grouppage-<group-name> (内容: グループ ページのページ名)

標準では、ビューロクラットは誰に対しても権限を付与し、あるいは除去することができます。 しかしながら、Manual:$wgAddGroups Manual:$wgRemoveGroups を使用している場合は、代わりにカスタマイズする必要がある場合があります。

次の例では任意の「projectmember」グループを作成します。利用者をブロックしたりページを削除することができ、そのグループの編集は既定で最新の更新には表示されません:

$wgGroupPermissions['projectmember']['bot'] = true;
$wgGroupPermissions['projectmember']['block'] = true;
$wgGroupPermissions['projectmember']['delete'] = true;
利用者グループ名には、スペースを含めることは出来ません。例えば、'random user'という利用者グループを作りたい場合は'random-user''random_user'と言った名前を使って下さい。 さらに、グループの作成には小文字のみを使用することをお勧めします。

例えば、次のようなページを作ろうと考えるかもしれません。

  • MediaWiki:Group-projectmember (内容: Project members)
  • MediaWiki:Group-projectmember-member (内容: Project members)
  • MediaWiki:Grouppage-projectmember (内容: Project:Project Members)

これは当該グループを、インタフェースに「Project Members」と呼ばせ、メンバーは「Project Member」と呼ばせ、「Project:Project members」というグループ解説ページを設定します。

この例では、編集権限(ページの編集や作成)を標準で無効にして、Write と名付けられた利用者グループを作成し、そのグループに編集権限を付与します。利用者は Special:UserRights を通して、手作業でこのグループに追加することができます。

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['writer']['edit'] = true;
$wgGroupPermissions['writer']['createpage'] = true;

この例では、次のページを作ることになるかもしれません。

  • MediaWiki:Group-writer (内容: Writers)
  • MediaWiki:Group-writer-member (内容: Writer)
  • MediaWiki:Grouppage-writer (内容: Project:Write)

定義済み利用者グループの削除

MediaWikiでは、定義済みのグループが多く、用意されています。 これらのグループのほとんどは $wgGroupPermissions['<グループ名>'] の中で配列のキーをアンセットすることで除去できます。 詳細は下記を参照してください。

この例ではビューロクラットグループをすべて除外しています。 重要ポイントは、Special:ListGroupRightsから除去するグループでは、上記6件の変数をすべて必ずアンセットしたか確認することです。しかしながら$wgGroupPermissionsのみアンセットするだけでも、Special:UserRightsの対象から除去するには十分です。 このコードはすべてのrequire_once行の後に置く必要があり、Extension:Renameuser などの拡張機能の追加を防止し、ビューロクラットグループに既定でパーミッションを付与するコードを取り込まないようにします。

unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );

一部の拡張機能 (Flow、Semantic MediaWikiほか) では、拡張機能の登録段階または登録機能を利用すると、権限が付与されるものがあります。こういう事例ではLocalSettings.phpにある登録機能を使い、既定で設定された利用者グループを解除することになるかもしれません。

$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
    unset( $wgGroupPermissions['oversight'] );
    unset( $wgGroupPermissions['flow-bot'] );
};

「user」というグループに関する注意

上記のメカニズムを使用すると、管理者、ビューロクラット、およびボットグループを削除できます。これらのグループを使用する場合は、通常の利用者許可システムを通じて割り当てることができます。 しかし、現在userグループを削除することは不可能です。 このグループは、通常の権限システムでは割り当てられません。 代わりに、ログインしているすべてのユーザーは自動的にそのグループのメンバーです。 これはMediaWikiでハードコードされており、現在は簡単に変更できません。

権限の一覧

以下の利用者権限は最新のバージョンのMediaWikiで利用可能です。 古いバージョンを利用している場合、wiki上の"Special:Version"を見て、"バージョン"カラムでカバーされているバージョンであるかご覧ください。

権限 説明 既定でこの権限を持つ利用者グループ バージョン
閲覧
read ページを閲覧 - falseに設定すると、$wgWhitelistRead で特定のページを上書きする
  警告: 利用者権限 「読み取り」 (ページの閲覧を許可) を false に設定すると ウィキ (記事、トーク、...) ページのみが保護されますが、アップロードされた ファイル ($wgUploadPath 下位ディレクトリ内の画像、ファイル、文書...) は常に、既定では直接アクセス経由で読み取り可能なままです
画像の閲覧やファイルのダウンロードのアクセスをログイン利用者のみに制限したい場合は、Manual:画像認証 および img_auth.php の各ページの情報を使用してください。
*, user 1.5+
編集
applychangetags 自身の編集にタグを適用 user 1.25+
autocreateaccount 外部利用者アカウントで自動的にログイン - より限定されたバージョンの createaccount 1.27+
createaccount 新しい利用者アカウントを作成 - register / registration *, sysop 1.5+
createpage ページ (議論ページ以外) を作成 - edit 権限が必要 *, user 1.6+
createtalk 議論ページを作成 - edit 権限が必要 *, user 1.6+
edit ページを編集 *, user 1.5+
editsemiprotected 「Allow only autoconfirmed users」の保護が設定されたページを編集 - カスケード保護なし autoconfirmed, bot, sysop 1.22+
editprotected 「Allow only administrators」の保護が設定されたページを編集 - カスケード保護なし sysop 1.13+
minoredit 細部の編集の印を付ける user 1.6+
move ページを移動 - edit 権限が必要 user, sysop 1.5+
move-categorypages カテゴリのページを移動 - move 権限が必要 user, sysop 1.25+
move-rootuserpages 利用者ページ本体を移動 - move 権限が必要 user, sysop 1.14+
move-subpages 下位ページを含めてページを移動 - move 権限が必要 user, sysop 1.13+
movefile ファイルを移動 - move 権限が必要で、$wgAllowImageMoving が true である必要があります user, sysop 1.14+
reupload 既存のファイルに上書き - upload 権限が必要 user, sysop 1.6+
reupload-own 自身がアップロードした既存のファイルに上書き - upload 権限が必要 (グループに reupload 権限が既にある場合は不要であることにご注意ください) 1.11+
reupload-shared 共有メディアリポジトリ上のファイルにローカルで上書き - (設定されている場合は)ローカルファイルを使用する (upload 権限が必要) user, sysop 1.6+
sendemail 他の利用者にメールを送信 user 1.16+
upload ファイルをアップロード - edit 権限が必要で、$wgEnableUploads を true にする必要がある user, sysop 1.5+
upload_by_url URL からファイルをアップロード - upload 権限が必要 (1.20以前は管理者に割り当てられていました) 1.8+
マネジメント
bigdelete 大量の履歴があるページを削除 ($wgDeleteRevisionsLimit によって決定される) - 「delete」権限が必要 sysop 1.12+
block 他の利用者の編集をブロック - ブロックの選択肢は、編集ブロック、アカウント新規作成のブロック、同一IPアドレスの他の利用者の自動ブロックを含みます sysop 1.5+
blockemail 利用者のメール送信をブロック - ブロックされている利用者による Special:Emailuser インターフェイスの使用を禁止できるようにします - ブロック 権限が必要 sysop 1.11+
browsearchive 削除されたページを検索 - Special:Undelete を使用します - 「deletedhistory」権限が必要 sysop 1.13+
changetags 個々の版と記録項目の任意のタグの追加と削除 - 現在は拡張機能では使用されていません user 1.25+
delete ページを削除 1.5–1.11: ページを削除/復元できるようにする。
1.12+: ページを削除できるようにする。 復元については 'undelete' 権限が必要 (下記参照)
sysop 1.5+
deletedhistory 削除された履歴項目 (関連する本文を除く) を閲覧 sysop 1.6+
deletedtext 削除された本文と削除された版間の差分を閲覧 sysop
deletelogentry 特定の記録項目を削除/復元 - 特定の記録項目の情報(操作の記録・要約欄・ある操作をした利用者名)を削除・復元できるようにします - 版指定削除 権限が必要 suppress 1.20+
deleterevision ページの特定の版を削除/復元 - 特定の版の情報(版のテキスト、編集の要約、編集をした利用者)を削除または復元することを許可する(既定では利用できない、実験的な機能です) バージョン1.20でdeleterevisiondeletelogentryに分割されました suppress 1.6+
editcontentmodel ページのコンテンツモデルを編集 - 「edit」権限が必要 user 1.23.7+
editinterface ユーザーインターフェースを編集 - インターフェイス メッセージを含みます。 サイト全般の CSS/JSON/JS の編集には以下のような分離権限が必要となりました。 - 「edit」権限が必要 sysop, interface-admin 1.5+
editmyoptions 自身の個人設定を編集 * 1.22+
editmyprivateinfo 自身の非公開データ (例: メールアドレス、本名) を編集 * 1.22+
editmyusercss 自身のCSSファイルを編集 - 1.31 以前は誰でも権限を付与されました (つまり「*」) (注意点としてグループがすでにeditusercss権限を得ている場合、この処理は不要) - 「edit」権限が必要 user 1.22+
editmyuserjs 自身のJavaScriptファイルを編集 - 1.31 以前は誰でも付与の対象でした (つまり「*」) (グループがすでにedituserjs権限を付与されている場合は不要)。 - 「edit」権限が必要 user 1.22+
editmyuserjson 自身のJSONファイルを編集 (ご注意:グループに既に edituserjson 権限が付与されている場合は不要です) - 「edit」権限が必要 user 1.31+
editmywatchlist 自身のウォッチリストを編集 (注: この権限がなくてもページを追加できる権限が他にもあります) * 1.22+
editsitecss サイト全体のCSSを編集 - 「editinterface」権限が必要 interface-admin 1.32+
editsitejs サイト全体のJavaScriptを編集 - 「editinterface」権限が必要 interface-admin 1.32+
editsitejson サイト全体のJSONを編集 - 「editinterface」権限が必要 sysop, interface-admin 1.32+
editusercss 他の利用者のCSSファイルを編集 - 「edit」権限が必要 interface-admin 1.16+
edituserjs 他の利用者のJavaScriptファイルを編集 - 「edit」権限が必要 interface-admin 1.16+
edituserjson 他の利用者のJSONファイルを編集 - 「edit」権限が必要 sysop, interface-admin 1.31+
hideuser 利用者名をブロックして公開記録から隠す - 既定では、編集数が1000以下のユーザーのみ非表示にできます。

無効にするには$wgHideUserContribLimitを使用します。

suppress 1.10+
markbotedits 巻き戻しをボットの編集として扱う - m:Help:Administration#Rollback を参照 - 「rollback」権限が必要 sysop 1.12+
mergehistory ページの履歴を統合 - 「edit」権限が必要 sysop 1.12+
pagelang ページの言語を変更 - $wgPageLanguageUseDB true でなければなりません 1.24+
patrol 他の利用者の編集を巡回済みにする - $wgUseRCPatrol true でなければなりません sysop 1.5+
patrolmarks 最近の更新で巡回済み印を閲覧 1.16+
protect 保護レベルを変更し、カスケード保護されたページを編集 - 「edit」権限が必要 sysop 1.5+
rollback 特定ページを最後に編集した利用者の編集を即時巻き戻し - 「edit」権限が必要 sysop 1.5+
suppressionlog 非公開記録を閲覧 suppress 1.6+
suppressrevision すべての利用者からの特定の版を見る、隠す、または隠すのをやめる - バージョン1.13以前、この権限はhiderevisionという名前でした - 「deleterevision」権限が必要 suppress 1.6+
unblockself 自身に対するブロックを解除 - この権限なしに、ブロック権限を有する管理者は他の管理者からブロックされたときにこれを解除することができません。 sysop 1.17+
undelete ページを復元 - 「deletedhistory」権限が必要 sysop 1.12+
userrights 全利用者権限を編集 - 任意の利用者に対してあらゆる(*)グループを付与/除去できるようにします

* $wgAddGroups $wgRemoveGroups によって、allの代わりに特定のグループを追加または除去できる機能を設定できます

bureaucrat 1.5+
userrights-interwiki 他のウィキの利用者の利用者権限を編集 1.12+
viewmyprivateinfo 自身の非公開データ (例: メールアドレス、本名) を閲覧 * 1.22+
viewmywatchlist ウォッチリストを閲覧 * 1.22+
viewsuppressed すべての利用者から隠された版を閲覧 - つまり、"suppressrevision" の権限をより狭めたものです (注記:suppressrevision権限を備えたグループでは不用) suppress 1.24+
管理
autopatrol 自身の編集を自動で巡回済みにする - $wgUseRCPatrol true でなければなりません bot, sysop 1.9+
deletechangetags データベースからタグを削除 - 現在拡張機能によって使用されています sysop 1.28+
import 他のウィキからページを取り込み - "transwiki" (ウィキ間転送) - 「edit」権限が必要 sysop 1.5+
importupload ファイルアップロードでページを取り込み - この権限はバージョン1.5までは、importrawと呼ばれていました。 - 「edit」権限が必要 sysop 1.5+
managechangetags タグの作成、有効化および無効化 - 現在は拡張機能では使用されていません sysop 1.25+
siteadmin データベースをロックおよびロック解除 - ウェブサイトへの閲覧以外のインタラクションをすべてブロックします (既定では利用できません) 1.5+
unwatchedpages ウォッチされていないページ一覧を閲覧 - 利用者がウォッチリストに登録していないページを一覧表示します sysop 1.6+
'テクニカル'
apihighlimits API要求でより高い制限値を使用 bot, sysop 1.12+
autoconfirmed IPベースの速度制限を受けない - 'autoconfirmed'グループに対して使用される。詳細な情報は下記のテーブルを参照。 autoconfirmed, bot, sysop 1.6+
bot 自動処理と認識させる - オプションで閲覧できます bot 1.5+
ipblock-exempt IPブロック、自動ブロック、広域ブロックを回避 sysop 1.9+
nominornewtalk 議論ページの細部の編集をした際に、新着メッセージとして通知しない - 「minoredit」権限が必要 bot 1.9+
noratelimit 速度制限を受けない - レート制限の影響を受けません(この権利が導入される前は、設定変数$wgRateLimitsExcludedGroups がこの目的のために使用されていました) sysop, bureaucrat 1.13+
override-export-depth リンク先ページを5階層まで含めて書き出す
この権限はリンクする対象ページの深さをSpecial:Exportで定義できます。無指定の場合は$wgExportMaxLinkDepth 値を採用、規定値は 0です。
?
purge サイト上のページ キャッシュを破棄 - URL パラメーター "&action=purge" user 1.10+
suppressredirect 転送ページを作成せずにページを移動 - 「move」権限が必要 bot, sysop 1.12+
writeapi 書き込み API を使用 - requires the edit right *, user, bot 1.13+
これらの権限はすべて別々のものを制御しますが、特定の操作を実行するために複数の権限が必要な場合もあります。 例えば編集は許可、閲読は不許可では合理性に欠け、ページを編集するにはまず内容を読まなければならないからです (当該ページがホワイトリスト化されていないという前提。) アップロードは許可、編集は不許可では合理性がなく、画像の投稿には必ず画像の説明などの記入を求められ、編集行為が欠かせないからです。

グループの一覧

次のグループは最新バージョンのMediaWikiで利用可能です。 古いバージョンではこれらの機能の一部が実装されていないものがあります。

グループ 説明 既定の権限 バージョン
* すべての利用者 (匿名利用者を含む)。 createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi 1.5+
user 登録アカウント。 applychangetags, changetags, createpage, createtalk, edit, editcontentmodel, editmyusercss, editmyuserjs, editmyuserjson, minoredit, move, move-categorypages, move-rootuserpages, move-subpages, movefile, purge, read, reupload, reupload-shared, sendemail, upload, writeapi
autoconfirmed 少なくとも $wgAutoConfirmAge の期間は活動していて少なくとも $wgAutoConfirmCount 回編集している登録済みアカウント。 autoconfirmed, editsemiprotected 1.6+
bot bot権限を持つロボット(自動化スクリプトを目的とします)。 autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect, writeapi 1.5+
sysop 既定でページの削除や復元、利用者のブロックやブロック解除などをできる利用者。 apihighlimits, autoconfirmed, autopatrol, bigdelete, block, blockemail, browsearchive, createaccount, delete, deletedhistory, deletedtext, editinterface, editprotected, editsemiprotected, editsitejson, edituserjson, import, importupload, ipblock-exempt, managechangetags, markbotedits, mergehistory, move, move-categorypages, move-rootuserpages, move-subpages, movefile, noratelimit, patrol, protect, proxyunbannable, reupload, reupload-shared, rollback, suppressredirect, unblockself, undelete, unwatchedpages, upload 1.5+
interface-admin サイト共通CSS/JSの編集権限がある利用者。 editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson 1.32+
bureaucrat 既定で他の利用者の権限を変更できる利用者。 noratelimit, userrights 1.5+

MW 1.12 から、$wgAutopromote を使用して、利用者が(自動認証されメールの認証に関して)自動的に昇進する独自のグループ情報を作ることができます。 カスタムグループを作成するには、そのグループに権利を割り当てるだけです。

既定の権限

既定の権限は DefaultSettings.php で定義されています。

新しい権限の追加

コーダ限定の情報を以下に示します。

新規の権限をコアに、例えば新規の特別ページのコントロール権限を追加する場合、存在する権限として User.php $mCoreRights の一覧への追加は必須 です。(サンプル)。 処理の対象が拡張機能の場合 $wgAvailableRights のもとで実行します。

上記で説明した$wgGroupPermissions を編集し、特定の利用者グループに付与することもできます。

外部のアプリケーションからOAuth もしくは ボットパスワードを使ってこの権限にアクセスを開くには、$wgGrantPermissions を編集して許諾を与えます。

// プロジェクト管理者権限 projectmember-powers right を作成
$wgAvailableRights[] = 'projectmember-powers';

// projectmember-powers を projectmember-group に付与
$wgGroupPermissions['projectmember']['projectmember-powers'] = true;

// 「基本」の同意に projectmember-powers を追加し、個別の  API リクエストに projectmember 権限を使えるようにします
$wgGrantPermissions['basic']['projectmember-powers'] = true;

合わせて /languages/i18n/en.json にはインターフェースメッセージのright-[name]及びaction-[name] を追加します(説明文書はqqq.jsonに記述)。 right-* メッセージはSpecial:ListGroupRightsに提示し、action-* メッセージの使用例は、「……する権限がありません」などの文章です。

関連項目