MediaWikiの設定 - 制限
概要
ページ
全てのユーザ
アスタリスク (*) で示される全てのユーザ (匿名ユーザを含む) に対する権限を定義する。
以下の例では、MediaWikiを読み取り専用にして編集やアカウント作成などの操作を制限することにより、安全性とセキュリティを高めている。
登録済みのユーザやより高い権限を持つグループ (管理者等) に対しては、別途権限を付与することで、必要な操作を許可することができる。
# 全てのユーザにページを読む権限を与える
$wgGroupPermissions['*']['read'] = true;
# 全てのユーザからページを編集する権限を剥奪する
$wgGroupPermissions['*']['edit'] = false;
# 全てのユーザからファイルをアップロードする権限を剥奪する
$wgGroupPermissions['*']['upload'] = false;
# 全てのユーザから既存のファイルを上書きアップロードする権限を剥奪する
$wgGroupPermissions['*']['reupload'] = false;
# 全てのユーザからURLを使用してファイルをアップロードする権限を剥奪する
$wgGroupPermissions['*']['upload_by_url'] = false;
# 全てのユーザから新しいページを作成する権限を剥奪する
$wgGroupPermissions['*']['createpage'] = false;
# 全てのユーザから新しいアカウントを作成する権限を剥奪する
# BOTの大量作成を防ぐためでもある
$wgGroupPermissions['*']['createaccount'] = false;
# 全てのユーザからユーザ権限を変更する権限を剥奪する
$wgGroupPermissions['*']['userrights'] = false;
登録ユーザ
MediaWikiにおける登録ユーザ (userグループ) の権限を定義する。
以下の例では、登録ユーザは読み取り権限のみを持ち、編集、アップロード、新規ページの作成、アカウント作成等の操作は許可されない。
ただし、一般的に、登録ユーザにはある程度の編集権限が与えられることが多い。
# 登録ユーザにページを読む権限を与える
$wgGroupPermissions['user']['read'] = true;
# 登録ユーザからページを編集する権限を剥奪する
$wgGroupPermissions['user']['edit'] = false;
# 登録ユーザからファイルをアップロードする権限を剥奪する
$wgGroupPermissions['user']['upload'] = false;
# 登録ユーザから既存のファイルを上書きアップロードする権限を剥奪する
$wgGroupPermissions['user']['reupload'] = false;
# 登録ユーザからURLを使用してファイルをアップロードする権限を剥奪する
$wgGroupPermissions['user']['upload_by_url'] = false;
# 登録ユーザから新しいページを作成する権限を剥奪する
$wgGroupPermissions['user']['createpage'] = false;
# 登録ユーザから新しいアカウントを作成する権限を剥奪する
$wgGroupPermissions['user']['createaccount'] = false;
# 登録ユーザからユーザ権限を変更する権限を剥奪する
$wgGroupPermissions['user']['userrights'] = false;
ページの制限
[最近の更新]
MediaWikiにおいて、一般ユーザが[最近の更新]を閲覧できないように制限する。
この設定を適用することで、以下に示す効果が得られる。
- 一般ユーザ (匿名ユーザを含む) が最近の更新ページにアクセスできなくなる。
- 登録ユーザも最近の更新ページにアクセスできなくなる。
- 管理者 (sysopグループ) のみが最近の更新ページにアクセスできるようになる。
- [最近の更新ページ] (Special:RecentChanges) と [関連ページ] (Special:RecentChangesLinked) へのアクセスが制限される。
- RSSフィード等の最近の更新フィードも無効化される。
LocalSettings.phpファイルを編集する。
vi LocalSettings.php
# LocalSettings.phpファイル
# 一般ユーザから 'recentchanges' 権限を削除
$wgGroupPermissions['*']['recentchanges'] = false;
# 登録ユーザにも 'recentchanges' 権限を与えない
$wgGroupPermissions['user']['recentchanges'] = false;
# 管理者 (sysop) グループに 'recentchanges' 権限を与える
$wgGroupPermissions['sysop']['recentchanges'] = true;
# 最近の更新ページへのアクセスを制限
# 最近の更新ページへのアクセスを制限
$wgHooks['SpecialPageBeforeExecute'][] = function ( $special, $subPage ) {
if ( $special->getName() == 'Recentchanges' || $special->getName() == 'Recentchangeslinked' ) {
if ( !$special->getUser()->isAllowed( 'recentchanges' ) ) {
throw new PermissionsError( 'recentchanges' );
}
}
return true;
};
# オプション : 最近の更新フィードも制限する場合
$wgRCFeeds = [];
$wgFeedLimit = 0;
※注意
設定変更後、MediaWikiのキャッシュをクリアすること。
必要に応じて、他のユーザグループにもrecentchanges権限を与えることができる。
この設定により、一般ユーザはMediaWikiの変更履歴を追跡しにくくなる。
トークページ (議論ページ)
MediaWikiにおける匿名ユーザ (ログインしていないユーザ) のトークページ (議論ページ) 機能を制御する。
false
に設定する場合は、匿名ユーザのトークページ機能が有効になる。
これにより、登録していないユーザでもMediaWiki上でコミュニケーションを取ることができる。
# 匿名ユーザのトークページ機能が無効になる
# 匿名ユーザのトークページ機能が無効になり、IPアドレスに基づくトークページは作成されない
# ユーザ名の代わりにIPアドレスが直接表示される (トークページへのリンクなし)
$wgDisableAnonTalk = true;
# 匿名ユーザのトークページ機能が有効になる
# 匿名ユーザ (IPアドレス) に対してトークページが作成可能になる
# IPアドレスに基づいたトークページへのリンクがユーザ名の代わりに表示される
$wgDisableAnonTalk = false;
使用例を以下に示す。
- スパム対策
- 匿名ユーザによるスパム投稿を減らすために、この機能を無効にすることがある。
- プライバシー保護
- IPアドレスに基づくページの作成を防ぐことで、匿名ユーザのプライバシーを保護できる。
- コミュニティ管理
- 登録ユーザとのコミュニケーションを促進するために、匿名ユーザのトークページを無効にすることもある。
※注意
この設定を変更する場合、コミュニティの運用方針やユーザのプライバシーへの影響を考慮する必要がある。
true
に設定した場合でも、既存の匿名ユーザのトークページは削除されない。
新しいページの作成と編集が制限されるだけである。
この設定を変更する必要があるかどうかは、運用目的や匿名ユーザとのコミュニケーションの重要性、スパム対策の必要性等を考慮して判断する。