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:
# Zakázat čtení anonymním uživatelům
$wgGroupPermissions['*']['read'] = false;
# Zakázat anonymní úpravy
$wgGroupPermissions['*']['edit'] = false;
# Zabránit registracím nových uživatelů s výjimkou 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.
# Zabránit registracím nových uživatelů s výjimkou sysops
$wgGroupPermissions['*']['createaccount'] = false;
- Při přihlášení jako sysop přejde na Special:Userlogin.
- Kliknutím na odkaz "Vytvořit účet" se dostane 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ů:
# Zabránit komukoli v registraci nových uživatelů
$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:
# Povolit pouze automaticky potvrzeným uživatelům upravovat jmenný prostor projektu
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );
# Nedovolte nikomu upravovat nediskusní stránky, dokud nepotvrdí své
# e-mailovou adresu (za předpokladu, že nemáme žádné vlastní jmenné prostory a umožňujeme úpravy
# od uživatelů bez potvrzení e-mailem)
# Poznámka pro 1.13: e-mailem potvrzené skupina a práva byly odstraněny z výchozího nastavení
# nastavení, pokud jej chcete používat, budete muset znovu povolit ručně
$wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] =
$wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );
# Povolit pouze sysopům upravovat jmenný prostor "Policy" (zásady).
$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 Příručka:Použití vlastních jmenných prostorů a Příručka: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
# Anonymní uživatelé nemohou vytvářet stránky
$wgGroupPermissions['*']['createpage'] = false;
# Stránky mohou vytvářet pouze uživatelé s účty starými čtyři dny a více
# Vyžaduje MW 1.6 nebo vyšší.
$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
:
# Zakázat čtení anonymním uživatelům
$wgGroupPermissions['*']['read'] = false;
# Ale umožněte jim číst např. tyto stránky:
$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.
To, aby se stránka pro některé uživatele chovala normálně, ale pro ostatní byla neviditelná, jak je to možné například u většiny softwaru na fóru, je velmi odlišná věc. 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é komise 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ě, pokud 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: Příručka:Parametry pro 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í 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 příručkou/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