Manual:Preventing access/ja

From MediaWiki.org
Jump to: navigation, search
言語:Project:Language policy English  • Deutsch • español • 日本語 • 中文

For help customizing user rights, see Manual:User rights. This page contains examples useful for restricting access.

ここでのほとんどの変更はLocalSettings.phpへの変更を必要とする。関連しない命令無しで、任意のコードの断片を影響させるために追加しなければならない。もしも、 LocalSettings にアクセスできないならば、その多くが実現できない。ファイルはPHPであるが、心配することはない。1行または複数行のファイルへの追加は、以下の簡単な手順で行なう:

  1. もしも、ファイルの終わりに ?> があれば、それを取り去る。それは不要で、ときには問題を起こす。
  2. ファイルの末尾に適当なエディタを使って行を追加する。その前後に空白行を入れても構わない。Windowsのメモ帳は使わないこと。これは、ファイルにバイトオーダマーク(BOM)を追加して動作をおかしくさせることがある。一般的に、BOMによる障害の兆候は、何も表示されないか、または "headers already sent"(既にヘッダは送信済み)エラーとして現れる。BOMを取り去るためには、 Vim text editor でファイルを開いて、:set nobomb と入力してから保存するか、hex editorを使ってファイルの先頭部分を編集するとよい。Windows WordPad seems to work fine, as does Notepad++. Removal of BOMs can also be accomplished using the Vim text editor by opening the file in Vim, typing :set nobomb, and resaving the file. If you're using a Mac, TextEdit will also do the job.

For more detailed information on editing LocalSettings.php, read Manual:LocalSettings.php.

シンプルなプライベートなwiki[edit]

"自分自身と承認した人だけのプライベートなwiki"の共通のユーザーケースに関して、次の作業が必要です:

警告 警告: 下記のセクションの警告をご覧下さい; これは"一般的な使い方"のコードで、あなたの要件にマッチしないかもしれません。

# 匿名ユーザーによる閲覧を無効にする
$wgGroupPermissions['*']['read'] = false;

# But allow them to access the login page or else there will be no way to log in!
$wgWhitelistRead = array ("Special:Userlogin");
"MediaWiki:Common.js", "MediaWiki:Monobook.css", "MediaWiki:Monobook.js", "-");

# 匿名編集を無効にする
$wgGroupPermissions['*']['edit'] = false;

# 管理者以外に新しいユーザーの登録を防止する
$wgGroupPermissions['*']['createaccount'] = false;

Depending on what extensions you have installed, you may want to whitelist more pages. For example if you are using the Extension:ConfirmAccount extension, you probably want Special:RequestAccount whitelisted. If the content language of your wiki is not English, you may have to use the translated name of the special pages in question.

アカウント作成を制限する[edit]

アカウント作成を制限するには、 Mediawikiをインストールしたルートパスにある LocalSettings.php を編集する必要があります。

# 管理者による設定以外で新しい利用者の登録を制限する
$wgGroupPermissions['*']['createaccount'] = false;

注 注: 新しい利用者は管理者によって以下の方法で引き続き作成できる:

注 注: sysopは、次の方法で、新しいユーザーを作ることができます:

  1. 管理者としてログインし、[[Special:Userlogin]]にいく。
  2. アカウント作成フォームを出すために"アカウントの作成"をクリックする。
  3. ユーザー名とメールアドレスを入力し、「メールアドレスで作成する」のボタンを押す。注意して欲しいのは$wgEnableEmail=true に設定するか sysop がパスワードを書き留めてユーザーに送ってあげる必要がある点である。
  4. アカウントが作成されランダムのパスワードが付与される。パスワードは指定のメールアドレスに送信される(「パスワードを忘れた」時の機能と同様)。ユーザーは最初のログインの際にパスワード変更を要求される。この手続きを済ませると、ユーザーのメールアドレスは認証済みとマークされる。
    When you click the "create account" button instead, you have to manually send the user his password. If you've set $wgMinimalPasswordLength=0 (default configuration up to version 1.15) and you've left the password field blank, the user will be emailed an e-mail address confirmation request but will be unable to access Special:Confirmemail to perform the confirmation. Instead, the user will get an error (unless you've added it to $wgWhitelistRead); the user will be able to login with a blank password and then confirm email, but their password will not have been reset (it will have to be reset manually).

非利用者がログインしようとしたときに表示されるテキストは適した形に修正できる。これは、管理者としてログインしたときに [[MediaWiki:Nosuchuser]]で行なうことが出来る。フォーマットが無視され、テキストがその通りに描画されるため、特別な形式を使わないで、平文テキストを使うこと(Might have changed, see bug 12952)。

You may also modify the contents of the e-mail sent to new users by editing the page MediaWiki:Createaccount-text.

管理者でもアカウントを作成できないようにするためには:

# Prevent new user registrations by anyone
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;

To add a message on top of the login form, modify MediaWiki:Loginstart or (to place on bottom of the form) MediaWiki:Loginend. Alternatively, use this code in your LocalSettings:

function efLoginFormMessage( &$template ) {
	$template->set( 'header', "(For an account to edit articles with, contact Mrs. Nurdsbaum in room B-303, nelda.nurdsbaum@example.com )");
	return true;
}
$wgHooks['UserLoginForm'][]='efLoginFormMessage';

すべてのページの編集制限[edit]

利用者は引き続きそれらの変更と共にページを読むことができ、Special:Export/Article nameかその他の方法(bug 1859を参照)を使うことによってソースを閲覧できる。

いくつかの例に関してはManual:User rights/ja$wgGroupPermissionsを参照して下さい:

Some examples of how to protect all pages from editing (not reading) by certain classes of users:

匿名編集を制限する[edit]

Requires that a user be registered before they can edit.

$wgGroupPermissions['*']['edit'] = false;
You may then also want to hide user tools for anonymous (IP address) visitors: $wgShowIPinHeader = false;

sysopではないすべてのユーザーの編集を制限する[edit]

Requires that a user be a member of the administrators (sysop) usergroup.

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

Restrict editing by absolutely everyone[edit]

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;

Restrict access to uploaded files[edit]

Manual:Image Authorisation, img_auth.php, Manual:User rights (read)

If you have enabled the ability to upload files, these will be served directly by the underlying web server. As a result, account-based access to the file is unrestricted by default.

警告 警告: Setting the user right "read" (allow viewing pages) to false will only protect wiki (article, talk, ...) pages, but uploaded files (images, files, docs... in the $wgUploadPath subdirectories) will always remain readable via direct access by default.
Use the information from Manual:Image Authorisation and img_auth.php pages when you have the need to restrict image views and file download access to only logged-in users.

Example for access restriction to uploaded files in the server configuration[edit]

If sensitive files are uploaded to an internet-accessible wiki, you may wish to add restrictions on where these can be accessed from. On Apache, if your local network were 10.1.2.*, you could restrict serving files to local addresses with:

  <Location /mediawiki/images>
    Order deny,allow
    Allow from 10.1.2.3
    Deny from all
  </Location>

すべての名前空間での編集の無効化[edit]

1.10より前[edit]

MediaWiki バージョン: 1.9

1.10以前のコアソフトウェア中ではこの機能は提供されていない。meta:User:PyneJ/Hacks/PageWhiteListのようにハックする必要がある。

1.10以降[edit]

MediaWiki バージョン: 1.10

MediaWiki 1.10中では、$wgNamespaceProtection変数を使うことで全ての名前空間に対して制限をかけられる。例:

# 自動的に認証された利用者のみプロジェクト名前空間を編集可能にする
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );

# メールアドレスで認証されるまで会話ページ以外の編集を許可しない
# (メールで認証されていない利用者の練習のために、特に編集を許す
# 固有の名前空間を用意していないことを仮定している)
# 1.13に関するノート: emailconfirmedグループと権限はデフォルトで除去されました
# 使いたいのであれば、セットアップして、手動で再び有効にしなければなりません
$wgNamespaceProtection[NS_MAIN]     = $wgNamespaceProtection[NS_USER]  =
$wgNamespaceProtection[NS_PROJECT]  = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP]  =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );

# 管理者のみ"Policy"名前空間の編集を許可する
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );

最後の例は、(Policy名前空間という) 固有の名前空間が存在し、NS_POLICYがその名前空間番号と等しい定数として定義されていることを仮定している。Manual:Using custom namespaces/jaを参照。

ある特定のページの編集制限[edit]

保護機能を使います。デフォルトでは、sysopはsysopsだけが編集できるようにページを保護できます。1.9とそれ以降において、デフォルトではsysopは(設定された期間よりも古いアカウントを持つ)"autoconfirmed"ユーザーのみが編集できるようにページを保護することもできます。

If you want to restrict editing to groups with specific permissions, edit $wgRestrictionLevels. To prevent actions other than edit and move, use $wgRestrictionTypes.

一部を除いてほとんど全ての編集を制限[edit]

すべてのページに対して無差別な編集の制限をしたいが、より気前よく編集できるようにいくつかのページ(サンドボックス、リクエストページに参加する、など)だけ許可したい場合、EditSubpages extensionを利用できます。これは多くの事例に当てはまらないのかもしれませんが、保護されたすべての名前空間と、編集可能にしたいすべてのページを持つ誰でも編集可能な特別なもののみで、特定のページの一部の編集を制限するの方法も利用可能です。

特定のIP範囲の編集制限[edit]

学校などの施設は特定のIPアドレス範囲を除いて編集ブロックをしたいと考えることが多いようです。これを行なうために、全ての他のレンジはblockedされなければならない。これを行うためのコードの変更なしに可能な現在唯一の方法は、Special:Blockipに行き、編集ブロックをしたい、65536個のCIDRブロックの各々の1つをシステム的にブロックすることである。これはこれ以降の全てのMediaWikiで動作する。これは名前空間毎の基準では動かない。

代替として、継ぎ目なくこれを行なうために、コードをハックすることは可能だが、いつまでもできるかできないかは不明である。

特定の利用者の編集ブロック[edit]

blocking機能を使い、全ての編集アクセス権限を取り去る。そのユーザーグループを変更無しで、特定のページに対して特定の利用者の編集を認めるか、制限するかについて、コアソフトウェアが行なう方法はない。

ページ作成の制限[edit]

Note: Revoking the edit right already prevents affected users from creating new pages and talk pages.

# 匿名利用者はページを作成できない
$wgGroupPermissions['*']['createpage'] = false;

# Only users with accounts four days old or older can create pages
# Requires MW 1.6 or higher.
$wgGroupPermissions['*'            ]['createpage'] = false;
$wgGroupPermissions['user'         ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
$wgAutoConfirmAge = 86400 * 4; # Four days times 86400 seconds/day

Restrict page creation in certain namespaces[edit]

There are separate rights for creating talk pages (createtalk) and creating non-talk pages (createpage). If you need per-namespace control finer than that, it is not possible in core mediawiki, and requires an extension such as Extension:Lockdown.

全てのページの閲覧制限[edit]

警告 警告: if you want anonymous users to be unable to view the wiki markup/code, you should not allow them to edit any page (see #Restrict editing of all pages above). If they can edit any page, they can use template inclusion to view even pages they can't edit. This may be possible to avoid in 1.10 by using $wgNonincludableNamespaces (or in earlier versions using the NonincludableNamespaces extension), but that may not have been extensively tested.

警告 警告: This method allows any visitor to view the wiki after creating an account. You may wish to combine it with #Restrict account creation above.

警告 警告: アップロードされた画像は画像ディレクトリ名を知っている限り誰でも引き続き閲覧可能である。image_auth.phpスクリプトのための場所$wgUploadPathManual:Image Authorisation/ja中の引き続く命令、あるいは .htaccess のような画像を保護するための外部の方式を使う。

注 注: もしも任意の利用者があなたのページを閲覧できないならば、検索も出来ない。Google上にインデックスされない。

Add this line to your LocalSettings.php file:

# 匿名利用者の閲覧制限
$wgGroupPermissions['*']['read'] = false;

# 例えば以下のページだけ閲覧することを許可する:
$wgWhitelistRead =  array ( "Main Page", "Special:Userlogin", "Help:Contents");
 
# 以前のように、ただしフランス語に対して(エンコーディングに注意!ファイルをUTF-8として保存する!)
# $wgWhitelistRead = array( ":Page Principale", "Special:Userlogin", "Aide en français");

$wgWhitelistReadの設定によってユーザーはメインページとログインページを閲覧できます。この行無しでは、誰もログインできません。ページの名前が複数の単語で構成される場合、それらの間にアンダースコア("_")ではなくスペース(" ")を使います。

プライベートなサイトのメインページに加えて、"Special:Recentchanges"を$wgWhitelistReadに追加することでフィールドリーダーのためにRecentchangesページにアクセスできます(このページの内容がプライベートではないと考えるのであれば)。

何らかの理由で、サイドバー、メインページ、もしくはログインスクリーンも保護する必要がある場合、.htpasswdもしくはそれと同等の高いレベルの認証方法を利用することをお勧めします。

Note that although Special:Listusers won't be available, it can be determined if a username is correct from Userlogin errors. You may want to give a common text for MediaWiki:wrongpassword and MediaWiki:nosuchusershort.

If you receive a JavaScript error when not logged in, and are using MediaWiki 1.16 or earlier, you will need to add a "-" to the $wgWhitelistRead so that the dynamically generated JavaScript file is readable by anonymous.

The source code of index.php has a reference to an article called "-":

<script src="/w/index.php?title=-&action=raw&gen=js&useskin=vector&270"></script>

特定のページの閲覧を制限する[edit]

sysop以外のユーザーが閲覧できないようにするためには、削除する方法が簡単です。sysopさえも閲覧できないようにするためには、the Oversight extensionで永久に削除できます。ページのテキストを完全に破壊するためには、データベースから手動で削除します。どの場合でも、この状態にあるページは編集不可能で、大抵の目的のためにはもはや存在しません。

ページがあるユーザーに対しては普通に振る舞うがその他のユーザーに対しては見えないようにすることは、大抵のフォーラムのソフトウェアでは可能ですが、MediaWikiではとても難しいことです。MediaWikiは2つの基本的なアクセスモードのために設計されています:

  1. 誰でもwiki上のすべてのページにアクセスできる(いくつかの特別ページの例外はあり)。これはWikipediaと姉妹プロジェクトで使われているモードです。
  2. 匿名ユーザーはMain Pageとログインページのみ閲覧可能で、どのページも編集できません。技術的な実装の観点(すべてのページ閲覧の追加チェックだけ)から、これは基本的に上記のものと同じです。これは様々なWikimediaのコミッターなどで使われるプライベートなwikiで採用されるオペレーションのモードです。

それよりも多く閲覧のパーミッションを用意することを意図するのであれば、MediaWikiはその使い方のために設計されていません (bug 1924を参照)。データは名前空間、ページ名、他の基準によって必ずしも明確に線引きされず、そのようにしたいのであれば塞がなければならないたくさんの情報漏れの可能性があります(security issues with authorization extensions/jaを参照)。別のwikiソフトウェアがあなたの目的に適切かもしれません。警告はしました。MediaWikiを使うことが必須であれば、2つの基本的な可能性があります:

  1. 共有ユーザーのデータベースで分離されたwikiをセットアップし、1つを閲覧可能にもう一つを閲覧不可能にして(上記を参照)、それらの間にインターウィキのリンクを作ります。
  2. サードパーティのハックもしくは拡張機能をインストールします。ソフトウェアをアップグレードするたびに再適用しなければならず、MediaWikiのセキュリティ修正もしくはアップグレードがリリースされても即座には更新されないことがあります。サードパーティは、もちろん、MediaWikiの開発者によってサポートされるものではなく、遭遇した問題をMediaWiki-l、#mediawiki、もしくは他の公式サポートのチャネルで聞くべきではありません。ハックの1つは隠し名前空間のパッチです (although this is outdated and shouldn't be patched to a working wiki, which it will almost certainly break); 他にもたくさんのハックのリストがCategory:Page specific user rights extensionsにあります。これらの1つを利用することを計画しているのであれば、security issues with authorization extensions/jaを読んで下さい。

Restricting exporting[edit]

Check also : Manual:Parameters_to_Special:Export
By protecting pages

It is not possible to export the contents of a page that cannot be read since rev:19935.

By modifying SpecialPage.php

Removing the Login link from all pages[edit]

One can remove the login/create account link from the upper right corner of all pages, as users can still go to Special:SpecialPages>Special:UserLogin to login. In LocalSettings.php use (tested with MediaWiki 1.16)

function NoLoginLinkOnMainPage( &$personal_urls ){
    unset( $personal_urls['login'] );
    unset( $personal_urls['anonlogin'] );
    return true;
}
$wgHooks['PersonalUrls'][]='NoLoginLinkOnMainPage';

Removing accounts[edit]

If you want to completely remove access to a user, e.g. on a simple private wiki, it's not possible to simply delete the account (unless no edits have been made); you can block it, but the user will still be able to read pages. However, using User Merge and Delete extension you can merge the account in another one and delete the former; the original account will then "disappear". If you want to preserve history readability (i.e., to have edits from the user to be still shown under his name), you can create a new account e.g. with username "OriginalUserName (deactivated)" and then merge "OriginalUserName" into the former, or even use Renameuser extension to rename "OriginalUserName" into "AnotherUserName", then create an account under "OriginalUserName" and merge "AnotherUserName" into it: in this manner, "OriginalUserName" will be completely "usurped" (if you've set a non-null password).

In MediaWiki 1.16.0, it is possible to set $wgBlockDisablesLogin to true to prevent access and reading to blocked users.

他の制限[edit]

作成者のみにページを編集可能か、履歴の閲覧を禁止にしたいか、そのほかのいくつかをしたいと思う。それらのどれもMediaWikiはサポートしていない。もしも、それ以上細かな許可を必要とするならば、#以下も参照節にこの目的のためにデザインされた他のwikiパッケージのリンクがあり、そのためにデザインされていないが、何らかの方法で動作するMediaWikiをゆがませるハックの試みのようなものである。

関連項目[edit]

There are some related manual/help pages that may be of interest:

他のwikiソフトウェアの中にはMediaWikiよりもきめ細かいアクセスコントロールのサポートをしているものがあります:

If you want better access control but want to use MediaWiki, this is a list of extensions and hacks to allow restrictions not possible in the software proper. These hacks may be out-of-date (check the version they're for). Please don't ask in official MediaWiki support channels if something goes wrong with a third-party hack.