Příručka:Zabránění přístupu
Pro nápovědu ohledně uživatelských práv se podívejte na stránku Příručka:Uživatelská práva . Tato stránka obsahuje příklady užitečné při zabraňování přístupu.
Informace o tom, jak upravit LocalSettings.php
, najdete na stránce Příručka:LocalSettings.php .
Jednoduchá soukromá wiki
Pro běžný případ použití "soukromé wiki, pro sebe a schválené ostatní" potřebujete:
# Disable reading by anonymous users
$wgGroupPermissions['*']['read'] = false;
# Disable anonymous editing
$wgGroupPermissions['*']['edit'] = false;
# Prevent new user registrations except by sysops
$wgGroupPermissions['*']['createaccount'] = false;
V závislosti na tom, jaká rozšíření jste nainstalovali, možná budete chtít přidat na seznam povolených více stránek. Pokud například používáte rozšíření Rozšíření:ConfirmAccount , pravděpodobně budete chtít Special:RequestAccount přidat na bílou listinu. Pokud jazyk obsahu vaší wiki není angličtina, možná budete muset použít přeložený název příslušných speciálních stránek.
Omezení vytváření účtu
Chcete-li omezit vytváření účtu, musíte upravit LocalSettings.php v kořenové cestě vaší instalace MediaWiki.
# Prevent new user registrations except by sysops
$wgGroupPermissions['*']['createaccount'] = false;
- Při přihlášení jako sysop přejděte na Special:Userlogin.
- Kliknutím na odkaz "Vytvořit účet" se dostanete na formulář pro vytvoření účtu.
- Zadejte uživatelské jméno a e-mailovou adresu a klikněte na tlačítko "e-mailem". Všimněte si, že potřebujete $wgEnableEmail=true , jinak si sysop musí vybrat heslo a poslat ho uživateli.
- Účet bude vytvořen s náhodným heslem, které je následně zasláno e-mailem na zadanou adresu (stejně jako u funkce "zapomenuté heslo"). Uživatel bude požádán o změnu hesla při prvním přihlášení; když to udělá, e-mailová adresa bude také označena jako potvrzená.
- Když místo toho kliknete na tlačítko "vytvořit účet", musí uživatel ručně odeslat heslo. Pokud jste nastavili $wgMinimalPasswordLength=0 (výchozí konfigurace až do verze 1.15) a pole pro heslo jste nechali prázdné, bude uživateli zaslán e-mail s žádostí o potvrzení e-mailové adresy, ale nebude mít přístup k Special:Confirmemail , aby mohl potvrzení provést. Místo toho se uživateli zobrazí chyba (pokud jste ji nepřidali do $wgWhitelistRead ); uživatel se bude moci přihlásit s prázdným heslem a poté potvrdit e-mail, ale jeho heslo nebude resetováno (bude muset být resetováno ručně).
Může být vhodné upravit text zobrazený při pokusu o přihlášení jiného uživatele. To lze provést na MediaWiki:Nosuchuser, když jste přihlášeni jako sysop. Používejte prostý text bez jakéhokoli speciálního formátování, protože formátování je ignorováno a text je vykreslen doslova. (Mohlo se změnit, viz bug 12952).
Můžete také upravit obsah e-mailu zaslaného novým uživatelům úpravou stránky MediaWiki:Createaccount-text.
Chcete-li zabránit i sysopům ve vytváření účtů:
# Prevent new user registrations by anyone
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;
Chcete-li přidat zprávu nad přihlašovací formulář, změňte MediaWiki:Loginprompt.
Omezení úprav
Omezení úprav všech stránek
Uživatelé budou i nadále moci číst stránky s těmito úpravami a mohou zobrazit zdroj pomocí Special:Export/název článku nebo jinými metodami. Více na stránce bug 1859.
Více na stránce Help:User rights a Příručka:$wgGroupPermissions . Pokud používáte Rozšíření:AbuseFilter , každý administrátor wiki může také zavést různá omezení.
Několik příkladů, jak chránit všechny stránky před úpravami (ne čtením) určitými skupinami uživatelů:
Omezení anonymních úprav
Vyžaduje, aby byl uživatel zaregistrován, než bude moci upravovat.
$wgGroupPermissions['*']['edit'] = false;
Omezení úprav na všechny uživatele, kteří nejsou sysop
Vyžaduje, aby byl uživatel členem skupiny uživatelů administrators (sysop).
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;
Omezení úprav úplně na každého
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;
Omezení úprav celého jmenného prostoru
Verze MediaWiki: | ≥ 1.10 |
Počínaje MediaWiki verze 1.10 je možné chránit celé jmenné prostory pomocí proměnné $wgNamespaceProtection . Příklady:
# Only allow autoconfirmed users to edit Project namespace
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );
# Don't allow anyone to edit non-talk pages until they've confirmed their
# email address (assuming we have no custom namespaces and allow edits
# from non-emailconfirmed users to start with)
# Note for 1.13: emailconfirmed group and right were removed from default
# setup, if you want to use it, you'll have to re-enable it manually
$wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] =
$wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );
# Only allow sysops to edit "Policy" namespace
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
Všimněte si, že v posledním případě se předpokládá, že vlastní jmenný prostor existuje a že NS_POLICY
je definovaná konstanta rovna číslu jmenného prostoru.
Viz Manual:Using custom namespaces a Manuál:Konstanty jmenných prostorů pro seznam základních jmenných prostorů MediaWiki.
Omezení úprav určitých konkrétních stránek
Použijte funkci Protect . Ve výchozím nastavení může každý sysop chránit stránky, takže je mohou upravovat pouze ostatní sysopové. Ve verzi 1.9 a vyšší mohou ve výchozím nastavení také chránit stránky, takže je mohou upravovat pouze "automaticky potvrzení" uživatelé (s účty staršími než nastavené období). To nevyžaduje úpravu konfiguračních souborů.
Pokud chcete omezit úpravy na skupiny se specifickými oprávněními, upravte $wgRestrictionLevels . Chcete-li zabránit jiným akcím než úpravám a přesunutí, použijte $wgRestrictionTypes .
Omezení úprav všech stránek kromě několika
Chcete-li zavést plošné omezení úprav pro všechny stránky, ale umožnit, aby některé z nich (například karantény, stránky s žádostí o připojení atd.) bylo štědřeji upravitelné, můžete použít rozšíření EditSubpages . To se nemusí příliš často hodit, ale můžete také použít výše zmíněnou metodu Omezení úprav určitých konkrétních stránek, se všemi chráněnými jmennými prostory a pouze se speciálním, který může upravovat každý, který má všechny požadované stránky. upravitelné.
Omezení úprav pro určité rozsahy IP adres
Školy a další instituce mohou chtít zablokovat všechny úpravy, které nejsou z několika specifikovaných rozsahů IP adres. Chcete-li tak učinit, podívejte se na stránku Příručka:Blokování a odblokování . Jediný způsob, jak to v současnosti udělat bez úpravy kódu, je přejít na Special:Blockip a přepnout rangeblock každý z rozsahů adres, který nechcete aby mohl upravovat. To bude fungovat pro všechny budoucí verze MediaWiki. Nebude fungovat na základě jmenného prostoru.
Omezení úprav konkrétním uživatelem
Použijte funkci uživatelského blokování , abyste uživateli odebrali veškerý přístup k úpravám. MediaWiki nezahrnuje možnost přímo udělovat práva samostatným uživatelům; místo toho jsou práva vždy přidělena skupině uživatelů. V základním softwaru neexistuje žádný způsob, jak změnit oprávnění konkrétních uživatelů za účelem omezení nebo povolení úprav konkrétních stránek, s výjimkou změny jejich uživatelské skupiny.
Omezení vytváření všech stránek
# Anonymous users can't create 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;
Omezení vytváření stránek v určitých jmenných prostorech
Existují samostatná práva pro vytváření diskusních stránek (createtalk) a vytváření nediskusních stránek (createpage). Pokud potřebujete jemnější ovládání podle jmenného prostoru, není to v základní MediaWiki možné a vyžaduje rozšíření, jako je Extension:Lockdown .
Omezení přístupu k nahraným souborům
Pokud jste povolili možnost nahrávat soubory, budou tyto obsluhovány přímo základním webovým serverem. Výsledkem je, že přístup k souboru na základě účtu je ve výchozím nastavení neomezený.
Příklad omezení přístupu k nahraným souborům v konfiguraci serveru
Pokud jsou citlivé soubory nahrány na internetovou wiki, možná budete chtít přidat omezení, odkud k nim lze přistupovat. Na Apache, pokud byla vaše místní síť 10.1.2.*, můžete omezit poskytování souborů na místní adresy pomocí:
<Location /mediawiki/images> Order deny,allow Allow from 10.1.2.3 Deny from all </Location>
Omezení sledování
Omezení zobrazení všech stránek
Přidejte tento řádek do svého souboru LocalSettings.php:
# Disable reading by anonymous users
$wgGroupPermissions['*']['read'] = false;
# But allow them to read e.g., these pages:
$wgWhitelistRead = [ "Main Page", "Help:Contents" ];
Nastavení $wgWhitelistRead
umožňuje uživatelům zobrazit hlavní stránku.
Pokud mají názvy stránek více než jedno slovo, použijte mezi nimi mezeru " ", nikoli podtržítko "_".
Kromě hlavní stránky takového soukromého webu můžete čtenářům informačních kanálů poskytnout přístup ke stránce Poslední změny (pokud si myslíte, že její obsah není soukromý) přidáním "Special:Recentchanges" k $wgWhitelistRead
.
Pokud z jakéhokoli důvodu potřebujete chránit i postranní panel, hlavní stránku nebo přihlašovací obrazovku, doporučujeme použít ověřování vyšší úrovně, například .htpasswd nebo ekvivalent.
Omezení zobrazení určitých konkrétních stránek
![]() | Pokud potřebujete omezený přístup na stránku nebo částečnou stránku, doporučujeme vám nainstalovat vhodný balíček pro správu obsahu. MediaWiki nebyla napsána tak, aby poskytovala omezení přístupu na stránku, a téměř všechny hacky nebo záplaty slibující je přidat budou pravděpodobně mít někde chyby, které by mohly vést k odhalení důvěrných dat. Nejsme zodpovědní za to, že něco unikne.
Další podrobnosti naleznete v části Problémy se zabezpečením s rozšířeními autorizace |
Chcete-li zabránit komukoli kromě sysopů v zobrazení stránky, můžete ji jednoduše smazat . Aby se zabránilo i sysopům v jeho prohlížení, lze jej odstranit trvaleji pomocí Příručka:Smazání změn . Chcete-li zcela zničit text stránky, lze jej ručně odstranit z databáze. V žádném případě nelze stránku v tomto stavu upravovat a pro většinu účelů již neexistuje.
V žádném případě nelze stránku v tomto stavu upravovat a pro většinu účelů již neexistuje. MediaWiki je navržena pro dva základní režimy přístupu:
- Každý si může prohlédnout každou jednotlivou stránku na wiki (možná s výjimkou několika speciálních stránek). Tento režim používá Wikipedie a její sesterské projekty.
- Anonymní uživatelé mohou zobrazit pouze hlavní stránku a přihlašovací stránku a nemohou upravovat žádnou stránku. To je v zásadě stejné jako výše uvedené, pokud jde o technickou implementaci (jen další kontrola pro každé zobrazení stránky), a proto existuje. Toto je způsob provozu používaný některými soukromými wikinami, jako jsou ty, které používají různé výbory Wikimedie.
Pokud máte v úmyslu mít jiná oprávnění k prohlížení, MediaWiki není navržena pro vaše použití. (Podívejte se na stránku T3924.) Data nemusí být nutně jasně vymezena jmenným prostorem, názvem stránky nebo jinými kritérii a existuje mnoho úniků, které budete muset zapojit, pokud to chcete udělat (viz ukázka Bezpečnostní problémy s autorizačními rozšířeními ). Pro váš účel může být vhodnější jiný wiki software. Byl jsi varován. Pokud musíte používat MediaWiki, existují tři základní možnosti:
- Nastavte svou wiki jako soukromou a přidejte na seznam povolených konkrétní stránky, které budou veřejné s
$wgWhitelistRead
v souboru LocalSetting.php. Viz část výše. - Nastavte samostatné wikiny se sdílenou databází uživatelů , nakonfigurujte jednu jako zobrazitelnou a jednu jako nezobrazitelnou (viz výše) a mezi nimi vytvářejte odkazy na interwiki .
- Nainstalujte hack nebo rozšíření třetí strany. Budete jej muset znovu použít při každé aktualizaci softwaru a nemusí být aktualizován okamžitě, když budou vydány nové opravy zabezpečení nebo aktualizace MediaWiki. Hacky třetích stran samozřejmě vývojáři MediaWiki nepodporují, a pokud máte problémy, neměli byste se ptát na MediaWiki-l, #mediawiki nebo jiných oficiálních kanálech podpory. Řada hacků je uvedena v Kategorie:Rozšíření uživatelských práv pro konkrétní stránku . Přečtěte si o Bezpečnostní problémy s autorizačními rozšířeními , pokud plánujete použít jeden z nich.
Omezení exportu
Související stránka: Manual:Parameters to Special:Export
Není možné exportovat obsah stránky, kterou nelze přečíst od r19935.
Odstranění přihlašovacího odkazu ze všech stránek
Odkaz na přihlášení/vytvoření účtu lze odstranit z pravého horního rohu všech stránek, protože uživatelé se stále mohou přihlásit na Special:SpecialPages > Special:UserLogin. V použití LocalSettings.php (testováno s MediaWiki 1.16)
function NoLoginLinkOnMainPage( &$personal_urls ){
unset( $personal_urls['login'] );
unset( $personal_urls['anonlogin'] );
return true;
}
$wgHooks['PersonalUrls'][]='NoLoginLinkOnMainPage';
Odstranění účtů
Pokud chcete uživateli zcela odebrat přístup, např. na jednoduché soukromé wiki není možné jednoduše smazat účet (pokud nebyly provedeny žádné úpravy ); můžete jej zablokovat , ale uživatel bude stále schopen číst stránky. Pomocí rozšíření User Merge and Delete však můžete účet sloučit do jiného a ten první smazat; původní účet pak "zmizí". Pokud chcete zachovat čitelnost historie (tj. aby se úpravy od uživatele stále zobrazovaly pod jeho jménem), můžete si vytvořit nový účet, např. s uživatelským jménem "OriginalUserName (deaktivováno)" a poté sloučit "OriginalUserName" do prvního, nebo dokonce použít rozšíření Rozšíření:Renameuser k přejmenování "OriginalUserName" na "AnotherUserName", poté vytvořit účet pod "OriginalUserName" a sloučit do něj "AnotherUserName": Tímto způsobem bude "OriginalUserName" zcela "zmocněn" (pokud jste nastavili nenulové heslo).
Od MediaWiki 1.16.0 je možné nastavit $wgBlockDisablesLogin na true, aby se zabránilo přístupu a čtení blokovaným uživatelům.
Další omezení
Možná budete chtít, aby stránky upravoval pouze jejich tvůrce, nebo zakázat prohlížení historie nebo cokoli z řady dalších věcí. Žádná z těchto funkcí není dostupná v nehacknuté verzi MediaWiki. Pokud potřebujete podrobnější oprávnění, podívejte se do sekce #Viz také, kde najdete odkazy na další wiki balíčky, které jsou k tomu určeny, a také hacky, které se pokoušejí překroutit MediaWiki do něčeho, co není navrženo, ale může fungovat i tak.
Související odkazy
Existuje několik souvisejících stránek s manuálem/nápovědou, které by vás mohly zajímat:
- Příručka:LocalSettings.php
- Příručka:$wgGroupPermissions
- Příručka:$wgRestrictionTypes
- Příručka:$wgRestrictionLevels
- Příručka:$wgNamespaceProtection
- Příručka:$wgEmailConfirmToEdit
- Příručka:$wgNonincludableNamespaces
- Příručka:Uživatelská práva
- Nápověda:Uživatelská práva a skupiny
Jiný software wiki může mít lepší podporu pro jemné řízení přístupu než MediaWiki:
Pokud chcete lepší řízení přístupu, ale chcete používat MediaWiki, toto je seznam rozšíření a hacků, které umožňují omezení, která nejsou ve vlastním softwaru možná. Tyto hacky mohou být zastaralé (zkontrolujte verzi, pro kterou jsou). Prosím, neptejte se na oficiálních kanálech podpory MediaWiki, jestli se něco pokazí s hackem třetí strany.
- Extension:Flagged Revisions
- Rozšíření:Moderation
- Rozšíření:Approved Revs
- Extension:Lockdown
- Extension:AuthorProtect
- Extension:EditSubpages - omezuje anonymní uživatele v úpravě většiny stránek
- Extension:NSFileRepo