CINXE.COM

acl [DokuWiki]

<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>acl [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="acl"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/acl?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&amp;ns="/> <link rel="edit" title="Edit this page" href="/acl?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/acl"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/acl"/> <link rel="canonical" href="https://www.dokuwiki.org/acl"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <link rel="alternate" hreflang="cs" href="https://www.dokuwiki.org/cs:acl"/> <link rel="alternate" hreflang="de" href="https://www.dokuwiki.org/de:acl"/> <link rel="alternate" hreflang="eo" href="https://www.dokuwiki.org/eo:acl"/> <link rel="alternate" hreflang="es" href="https://www.dokuwiki.org/es:acl"/> <link rel="alternate" hreflang="fa" href="https://www.dokuwiki.org/fa:acl"/> <link rel="alternate" hreflang="fr" href="https://www.dokuwiki.org/fr:acl"/> <link rel="alternate" hreflang="it" href="https://www.dokuwiki.org/it:acl"/> <link rel="alternate" hreflang="ja" href="https://www.dokuwiki.org/ja:acl"/> <link rel="alternate" hreflang="ko" href="https://www.dokuwiki.org/ko:acl"/> <link rel="alternate" hreflang="nl" href="https://www.dokuwiki.org/nl:acl"/> <link rel="alternate" hreflang="pl" href="https://www.dokuwiki.org/pl:acl"/> <link rel="alternate" hreflang="pt-br" href="https://www.dokuwiki.org/pt-br:acl"/> <link rel="alternate" hreflang="ru" href="https://www.dokuwiki.org/ru:acl"/> <link rel="alternate" hreflang="uk" href="https://www.dokuwiki.org/uk:acl"/> <link rel="alternate" hreflang="zh" href="https://www.dokuwiki.org/zh:acl"/> <link rel="alternate" hreflang="x-default" href="https://www.dokuwiki.org/acl"/> <script >var NS='';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"acl","namespace":"","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e&amp;lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/acl?do=login&amp;sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="acl" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="acl" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">&gt;</button></div></form> </div> <ul> <li class="action recent"><a href="/acl?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/acl?do=media&amp;ns=" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/acl?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/acl" class="breadcrumbs" title="acl">acl</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <div class="plugin_translation is-dropdown"><span class="title">Translations of this page<sup><a href="/localization" class="wikilink1" title="localization" data-wiki-id="localization">?</a></sup>: </span><ul><li class="span"><span class="wikilink1" title="English">English (en)</span></li><li class="a"><a class="wikilink2" title="|العربية" href="/ar:acl">|العربية (ar)</a></li><li class="a"><a class="wikilink2" title="Català" href="/ca:acl">Català (ca)</a></li><li class="a"><a class="wikilink1" title="Česky" href="/cs:acl">Česky (cs)</a></li><li class="a"><a class="wikilink2" title="Dansk" href="/da:acl">Dansk (da)</a></li><li class="a"><a class="wikilink1" title="Deutsch" href="/de:acl">Deutsch (de)</a></li><li class="a"><a class="wikilink2" title="Ελληνικά" href="/el:acl">Ελληνικά (el)</a></li><li class="a"><a class="wikilink1" title="Esperanto" href="/eo:acl">Esperanto (eo)</a></li><li class="a"><a class="wikilink1" title="Español" href="/es:acl">Español (es)</a></li><li class="a"><a class="wikilink1" title="فارسی" href="/fa:acl">فارسی (fa)</a></li><li class="a"><a class="wikilink1" title="Français" href="/fr:acl">Français (fr)</a></li><li class="a"><a class="wikilink2" title="עברית" href="/he:acl">עברית (he)</a></li><li class="a"><a class="wikilink2" title="Magyar" href="/hu:acl">Magyar (hu)</a></li><li class="a"><a class="wikilink1" title="Italiano" href="/it:acl">Italiano (it)</a></li><li class="a"><a class="wikilink1" title="日本語" href="/ja:acl">日本語 (ja)</a></li><li class="a"><a class="wikilink1" title="한국어" href="/ko:acl">한국어 (ko)</a></li><li class="a"><a class="wikilink2" title="Lietuvių Kalba" href="/lt:acl">Lietuvių Kalba (lt)</a></li><li class="a"><a class="wikilink1" title="Nederlands" href="/nl:acl">Nederlands (nl)</a></li><li class="a"><a class="wikilink2" title="Norsk" href="/no:acl">Norsk (no)</a></li><li class="a"><a class="wikilink1" title="Polski" href="/pl:acl">Polski (pl)</a></li><li class="a"><a class="wikilink1" title="Português" href="/pt-br:acl">Português (pt-br)</a></li><li class="a"><a class="wikilink2" title="Română" href="/ro:acl">Română (ro)</a></li><li class="a"><a class="wikilink1" title="Русский" href="/ru:acl">Русский (ru)</a></li><li class="a"><a class="wikilink2" title="Српски Језик" href="/sr:acl">Српски Језик (sr)</a></li><li class="a"><a class="wikilink2" title="Svenska" href="/sv:acl">Svenska (sv)</a></li><li class="a"><a class="wikilink2" title="ไทย" href="/th:acl">ไทย (th)</a></li><li class="a"><a class="wikilink1" title="Українська" href="/uk:acl">Українська (uk)</a></li><li class="a"><a class="wikilink1" title="中文" href="/zh:acl">中文 (zh)</a></li><li class="a"><a class="wikilink2" title="繁體中文" href="/zh-tw:acl">繁體中文 (zh-tw)</a></li></ul></div> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> &amp; <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> &amp; <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>acl</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#access_control_lists_acl_s">Access Control Lists (ACL)s</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#configuration_and_setup">Configuration and Setup</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#see_also">See also</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#access_restrictions">Access Restrictions</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#editing_acls">Editing ACLs</a></div></li> <li class="level3"><div class="li"><a href="#acls_by_example">ACLs by Example</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#background_info">Background Info</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#user_group_encoding">User/Group Encoding</a></div></li> <li class="level3"><div class="li"><a href="#user_wildcards">User Wildcards</a></div></li> </ul></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="access_control_lists_acl_s">Access Control Lists (ACL)s</h1> <div class="level1"> <p> <a href="/dokuwiki" class="wikilink1" title="dokuwiki" data-wiki-id="dokuwiki">DokuWiki</a> — like most wikis — is very open by default. Everyone is allowed to create, edit and delete pages. However ​sometimes it makes sense to restrict access to certain or all pages. This is when the <em>Access Control List</em> (<abbr title="Access Control List">ACL</abbr>) comes into play. This page gives an overview of how ACLs work in DokuWiki and how they are configured. </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Access Control Lists (ACL)s] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="access_control_lists_acl_s" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-391" /><button type="submit" title="Access Control Lists (ACL)s">Edit</button></div></form></div> <h2 class="sectionedit2" id="configuration_and_setup">Configuration and Setup</h2> <div class="level2"> <p> ACLs can be enabled in the <a href="/installer" class="wikilink1" title="installer" data-wiki-id="installer">installer</a> and an initial <abbr title="Access Control List">ACL</abbr> policy is set there as well. To manually enable ACLs, switch on the <a href="/config:useacl" class="wikilink1" title="config:useacl" data-wiki-id="config:useacl">useacl</a> option and create a copy of the example files <code>conf/​acl.auth.php.dist</code>​ and <code>​conf/​users.auth.php.dist</code>.​ Rename the files to <code>​conf/​acl.auth.php</code>​ and <code>​conf/​users.auth.php</code> respectively. </p> <p> Example of a minimal <code>​conf/​users.auth.php</code> file for a user <code>admin</code> with the password <code>admin</code>. If you use it, be sure to change the password afterwards. </p> <dl class="file"> <dt><a href="/_export/code/acl?codeblock=0" title="Download Snippet" class="mediafile mf_php">conf/​users.auth.php</a></dt> <dd><pre class="code file php"><span class="co2"># login:passwordhash:Real Name:email:groups (comma[,] separated) </span> admin<span class="sy0">:</span>$2y$<span class="nu19">10</span><span class="re0">$P5YH8uIM2uAE9snRq32yAuHMb4</span><span class="sy0">/</span>XAzksFd5Cakqqtsw9BWeSsyLZq<span class="sy0">:</span>admin<span class="sy0">:</span>admin<span class="sy0">@</span>admin<span class="sy0">.</span>com<span class="sy0">:</span>admin<span class="sy0">,</span>user</pre> </dd></dl> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Configuration and Setup] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="configuration_and_setup" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="392-1172" /><button type="submit" title="Configuration and Setup">Edit</button></div></form></div> <h3 class="sectionedit3" id="see_also">See also</h3> <div class="level3"> <p> There are a few more config options and features that relate to authentication, user registration and <abbr title="Access Control List">ACL</abbr> setup. Please check their respective wiki pages to get more information: </p> <ul> <li class="level1"><div class="li"> Config option <a href="/config:useacl" class="wikilink1" title="config:useacl" data-wiki-id="config:useacl">useacl</a> – enable <abbr title="Access Control List">ACL</abbr> usage</div> </li> <li class="level1"><div class="li"> Config option <a href="/config:superuser" class="wikilink1" title="config:superuser" data-wiki-id="config:superuser">superuser</a> – setup superusers with <abbr title="Access Control List">ACL</abbr> granting rights </div> </li> <li class="level1"><div class="li"> Config option <a href="/config:defaultgroup" class="wikilink1" title="config:defaultgroup" data-wiki-id="config:defaultgroup">defaultgroup</a> – the default group to which new users are added</div> </li> <li class="level1"><div class="li"> <a href="/plugin:usermanager" class="wikilink1" title="plugin:usermanager" data-wiki-id="plugin:usermanager">User Manager</a> – managing users</div> </li> <li class="level1"><div class="li"> <a href="/auth" class="wikilink1" title="auth" data-wiki-id="auth">Authentication Backends</a> – identify users from different data sources</div> </li> <li class="level1"><div class="li"> <a href="/faq:regdisable" class="wikilink1" title="faq:regdisable" data-wiki-id="faq:regdisable">FAQ: How to disable open user registration</a> – replaces $conf[openregister]</div> </li> </ul> <p> <img src="/lib/images/smileys/exclaim.svg" class="icon smiley" alt=":!:" /> <strong>WARNING:</strong> DokuWiki&#039;s <abbr title="Access Control List">ACL</abbr> feature has been included for some time and should be pretty stable. However, if you are concerned about the risk of unauthorized users accessing information in your wiki, you should never put it on a computer accessible from the Internet. </p> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[See also] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="see_also" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="1173-2119" /><button type="submit" title="See also">Edit</button></div></form></div> <h2 class="sectionedit4" id="access_restrictions">Access Restrictions</h2> <div class="level2"> <p> Access restrictions can be bound to <a href="/pagename" class="wikilink1" title="pagename" data-wiki-id="pagename">pages</a> and <a href="/namespaces" class="wikilink1" title="namespaces" data-wiki-id="namespaces">namespaces</a>. There are seven permissions: <em>none</em>, <em>read</em>, <em>edit</em>, <em>create</em>, <em>upload</em>, <em>delete</em> and <em>admin</em>. Each higher permission contains the lower ones, with read being the lowest and delete the highest one. You should note that create, upload and delete permissions can only be assigned to namespaces. </p> <p> Rules that were set to namespaces apply on media namespaces as well as for page namespaces. </p> <p> When DokuWiki checks which rights it should give to a user, it uses all rules matching the user&#039;s name or the groups he or she is in. The rule that provides a user&#039;s permission is chosen according to the following process: </p> <ul> <li class="level1"><div class="li"> Rules which match closer to the namespace:page are preferred over rules which match further away—we call this “specific matching”.</div> </li> <li class="level1"><div class="li"> When more than one rule matches at the same level, the rule giving the highest access level is preferred. <br/> (This also means that it is not possible to restrict an access right via a rule at the same level. For retroactively restricting access rights, see also the <a href="https://forum.dokuwiki.org/d/20318-reduce-privileges-by-group-in-acl/17" class="urlextern" title="https://forum.dokuwiki.org/d/20318-reduce-privileges-by-group-in-acl/17">forum</a>.)</div> </li> </ul> <p> Users are in the groups they were assigned to in the user manager (or the auth backend). However there are two <strong>groups</strong> that are somewhat special: </p> <ul> <li class="level1"><div class="li"> <strong>@ALL</strong> Everyone, even users not logged in, is a member of the ALL group. You can use this group to restrict access for all users (as a default setting) and then relax the permissions for some selected users. </div> </li> <li class="level1"><div class="li"> <strong>@user</strong> All self-registered users are by default automatically a member of the group &#039;user&#039;. Use this to give permissions to &#039;logged-in&#039; users. The name of this group is configured through the <a href="/config:defaultgroup" class="wikilink1" title="config:defaultgroup" data-wiki-id="config:defaultgroup">defaultgroup</a> option. Unlike the virtual “ALL” group, the “user” group is a real group to which all users are added automatically when using the plain auth backend. If you use a different backend you need to use the groups provided by this backend.</div> </li> </ul> <p> Groups are represented internally and in the <abbr title="Access Control List">ACL</abbr> manager by a prepended <code>@</code> character to the group name. </p> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Access Restrictions] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="access_restrictions" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="2120-4276" /><button type="submit" title="Access Restrictions">Edit</button></div></form></div> <h3 class="sectionedit5" id="editing_acls">Editing ACLs</h3> <div class="level3"> <p> To easily add new or change existing access rules, you should use the <a href="/plugin:acl" class="wikilink1" title="plugin:acl" data-wiki-id="plugin:acl">ACL Manager</a> which is available from the Administration menu. A detailed description of its interface can be found <a href="/plugin:acl" class="wikilink1" title="plugin:acl" data-wiki-id="plugin:acl">here</a>. </p> <p> Basically there are three steps to add a new <abbr title="Access Control List">ACL</abbr> rule: </p> <ol> <li class="level1"><div class="li"> select the namespace or page to restrict from the upper left tree navigation</div> </li> <li class="level1 node"><div class="li"> choose to whom the <abbr title="Access Control List">ACL</abbr> rule should apply</div> <ul> <li class="level2"><div class="li"> by selecting a known group or user from the dropdown menu</div> </li> <li class="level2"><div class="li"> or by selecting “User:” or “Group:” and entering the group or user name in the field</div> </li> </ul> </li> <li class="level1"><div class="li"> set the appropriate permissions</div> </li> </ol> <p> Existing rules can be modified or deleted in the table at the bottom of the <abbr title="Access Control List">ACL</abbr> manager. conf/​acl.auth.php.dist​conf/​users.auth.php.dist​conf/​acl.auth.php​conf/​users.auth.php </p> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Editing ACLs] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="editing_acls" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="4277-5089" /><button type="submit" title="Editing ACLs">Edit</button></div></form></div> <h3 class="sectionedit6" id="acls_by_example">ACLs by Example</h3> <div class="level3"> <p> In this section we will explain how access rules work, using a fictional example setup that looks like this in the <abbr title="Access Control List">ACL</abbr> manager: </p> <p> <a href="/_detail/aclexample.png?id=acl" class="media" title="aclexample.png"><img src="/_media/aclexample.png" class="media" loading="lazy" alt="" /></a> </p> <p> Let&#039;s have a look at each line: </p> <ol> <li class="level1"><div class="li"> This sets permission for everyone in the main namespace, allowing everybody to edit and create pages. However upload is not allowed.</div> </li> <li class="level1"><div class="li"> User <em>bigboss</em> is given full rights.</div> </li> <li class="level1"><div class="li"> Now the access for the <code>devel</code> namespace is restricted. Nobody is allowed to do anything.</div> </li> <li class="level1"><div class="li"> Well not nobody really—we give members of the <em>devel</em> group almost full rights here. Deleting files however is not allowed.</div> </li> <li class="level1"><div class="li"> User <em>bigboss</em> however is allowed full access to the <code>devel</code> namespace. He/she can even delete uploaded files.</div> </li> <li class="level1"><div class="li"> The <em>marketing</em> group may read everything in the <code>devel</code> namespace, but cannot edit or create pages.</div> </li> <li class="level1"><div class="li"> However the devel team doesn&#039;t want their boss to see the <code>funstuff</code> page—remember exact pagematches override namespace permissions.</div> </li> <li class="level1"><div class="li"> And finally the <em>marketing</em> group is allowed to edit the <code>devel:marketing</code> page as well. (This page could however not have been created by them.)</div> </li> <li class="level1 node"><div class="li"> Then the permissions for the namespace <code>marketing</code> are set. All members of the <em>marketing</em> group are allowed to upload there </div> <ul> <li class="level2"><div class="li"> other users will be matched by line #1 so they can still create and edit. </div> </li> <li class="level2"><div class="li"> Rights for <em>bigboss</em> are inherited from line #2 so this user can still upload and delete files. (No wonder that everyone would like to be the <em>bigboss</em>.)</div> </li> </ul> </li> <li class="level1"><div class="li"> The last line finally restricts the start page to readonly for everyone. Even for <em>bigboss</em>. Only superusers will be able to ever edit that page.</div> </li> </ol> <p> Let&#039;s have a look at a second example to better understand <strong>specific matching</strong>: </p> <p> <a href="/_detail/aclexample2.png?id=acl" class="media" title="aclexample2.png"><img src="/_media/aclexample2.png" class="media" loading="lazy" alt="" /></a> </p> <p> This time we look what rules will match for different users when trying to access the page <code>private:bobspage</code>. </p> <ol> <li class="level1 node"><div class="li"> abby, a regular user</div> <ul> <li class="level2"><div class="li"> three rules match, #1, #2, #4</div> </li> <li class="level2"><div class="li"> rule #4 is closest, it matches at the namespace level so it takes precedence over the other three</div> </li> <li class="level2"><div class="li"> abby&#039;s permissions level is <code>None</code></div> </li> </ul> </li> <li class="level1 node"><div class="li"> bob, a regular user</div> <ul> <li class="level2"><div class="li"> four rules match, #1, #2, #4, #6</div> </li> <li class="level2"><div class="li"> rule #6 wins as its an exact match</div> </li> <li class="level2"><div class="li"> bob&#039;s permission level is <code>Delete</code></div> </li> </ul> </li> <li class="level1 node"><div class="li"> bob forgets to login and tries to access his page</div> <ul> <li class="level2"><div class="li"> two rules match, #1 &amp; #4</div> </li> <li class="level2"><div class="li"> rule #4 is closer, it wins</div> </li> <li class="level2"><div class="li"> bob&#039;s permission level while not logged in is <code>None</code></div> </li> </ul> </li> <li class="level1 node"><div class="li"> charlie, a staff member</div> <ul> <li class="level2"><div class="li"> five rules match, #1–#5</div> </li> <li class="level2"><div class="li"> two rules match at namespace level, #5 gives charlie the higher permission so it wins</div> </li> <li class="level2"><div class="li"> charlie&#039;s permission level is <code>Delete</code></div> </li> </ul> </li> </ol> <p> Note rule #5, which appears to duplicate rule #3. Without it, staff members wouldn&#039;t be able to access the private namespace as rule #4 would keep them out. </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[ACLs by Example] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="acls_by_example" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="5090-7873" /><button type="submit" title="ACLs by Example">Edit</button></div></form></div> <h2 class="sectionedit7" id="background_info">Background Info</h2> <div class="level2"> <p> Access restrictions are saved in a file called <code>conf/acl.auth.php</code>, which should be writable by the webserver if you want to use the <abbr title="Access Control List">ACL</abbr> admin interface described above. It is not recommended to edit this file manually. Use the admin interface instead. </p> <p> Empty lines and shell-style comments are ignored. Each line contains 3 whitespace separated fields: </p> <ul> <li class="level1"><div class="li"> The resource to restrict. This can either be a <a href="/pagename" class="wikilink1" title="pagename" data-wiki-id="pagename">pagename</a> or a <a href="/namespaces" class="wikilink1" title="namespaces" data-wiki-id="namespaces">namespace</a>. Namespaces are marked by an additional asterisk (see examples below).</div> </li> <li class="level1"><div class="li"> A group or user name. Groupnames are marked by a leading <code>@</code> character.</div> </li> <li class="level1"><div class="li"> A permission level (see below).</div> </li> </ul> <p> There are 7 permission levels represented by an integer. Higher levels include lower ones. If you can edit you can read, too. However the <em>admin</em> permission of <em>255</em> can not be used in the <code>conf/acl.auth.php</code> file. It is only used internally by matching against the <a href="/config:superuser" class="wikilink1" title="config:superuser" data-wiki-id="config:superuser">superuser</a> option. </p> <div class="table sectionedit8"><table class="inline"> <thead> <tr class="row0"> <th class="col0 leftalign"> Name </th><th class="col1 leftalign"> Level </th><th class="col2"> applies to </th><th class="col3"> Permission </th><th class="col4 leftalign"> DokuWiki constant </th> </tr> </thead> <tr class="row1"> <td class="col0 leftalign"> none </td><td class="col1 centeralign"> 0 </td><td class="col2 leftalign"> pages, namespaces </td><td class="col3 leftalign"> no permission—complete lock out </td><td class="col4 leftalign"> AUTH_NONE </td> </tr> <tr class="row2"> <td class="col0 leftalign"> read </td><td class="col1 centeralign"> 1 </td><td class="col2 leftalign"> pages, namespaces </td><td class="col3 leftalign"> read permission </td><td class="col4 leftalign"> AUTH_READ </td> </tr> <tr class="row3"> <td class="col0 leftalign"> edit </td><td class="col1 centeralign"> 2 </td><td class="col2 leftalign"> pages, namespaces </td><td class="col3"> existing pages may be edited </td><td class="col4 leftalign"> AUTH_EDIT </td> </tr> <tr class="row4"> <td class="col0 leftalign"> create </td><td class="col1 centeralign"> 4 </td><td class="col2"> namespaces </td><td class="col3"> new pages can be created </td><td class="col4 leftalign"> AUTH_CREATE </td> </tr> <tr class="row5"> <td class="col0 leftalign"> upload </td><td class="col1 centeralign"> 8 </td><td class="col2"> namespaces </td><td class="col3"> mediafiles may be uploaded </td><td class="col4 leftalign"> AUTH_UPLOAD </td> </tr> <tr class="row6"> <td class="col0 leftalign"> delete </td><td class="col1 centeralign"> 16 </td><td class="col2"> namespaces </td><td class="col3"> mediafiles may be overwritten or deleted </td><td class="col4 leftalign"> AUTH_DELETE </td> </tr> <tr class="row7"> <td class="col0 leftalign"> admin </td><td class="col1 centeralign"> 255 </td><td class="col2 leftalign"> admin plugins </td><td class="col3 leftalign"> superuser<sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup> can change admin settings </td><td class="col4"> AUTH_ADMIN </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_8"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Table] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table" /><input type="hidden" name="range" value="8831-9497" /><button type="submit" title="Table">Edit</button></div></form></div> <p> Here is an example setup matching the first example given above: </p> <pre class="file">* @ALL 4 * bigboss 16 devel:* @ALL 0 devel:* @devel 8 devel:* bigboss 16 devel:* @marketing 1 devel:funstuff bigboss 0 devel:marketing @marketing 2 marketing:* @marketing 8 start @ALL 1</pre> <p> Please note that <strong>order does not matter</strong> in the file. The file is parsed as whole, then a perfect match for the current page/user combo is searched for. When a match is found further matching is aborted. If no match is found, group permissions for the current page are checked. If no match is found the check continues in the next higher namespace. </p> <p> <img src="/lib/images/smileys/exclaim.svg" class="icon smiley" alt=":!:" /> <strong>Note:</strong> The delete permission affects media files only. Pages can be deleted (and restored) by everyone with at least edit permission. Someone who has upload permissions but no delete permissions can only overwrite existing media files if the <a href="/config:mediarevisions" class="wikilink1" title="config:mediarevisions" data-wiki-id="config:mediarevisions">media revisions</a> option is enabled. </p> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[Background Info] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="background_info" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="7874-10603" /><button type="submit" title="Background Info">Edit</button></div></form></div> <h3 class="sectionedit9" id="user_group_encoding">User/Group Encoding</h3> <div class="level3"> <p> Because the <abbr title="Access Control List">ACL</abbr> configuration uses a few special characters to denote special functionality (like <code>@</code> prefixes, spaces, etc), user and group names need to be encoded when they contain certain characters to avoid clashes. </p> <p> When you use the <abbr title="Access Control List">ACL</abbr> Manager you don&#039;t have to think about this, it will do it automatically for you. </p> <p> When manually editing ACLs, user and group names need to be encoded. Internally this is done using the <a href="https://codesearch.dokuwiki.org/search?project=dokuwiki&amp;defs=auth_nameencode&amp;path=" class="interwiki plugin_xref" title="view definition for auth_nameencode()">auth_nameencode()</a> method. </p> <p> The encoding uses <abbr title="Uniform Resource Locator">URL</abbr> encoding for all non-letter/number <abbr title="American Standard Code for Information Interchange">ASCII</abbr> chars (special chars in the lower 128 byte range). UTF-8 Multibytechars are not encoded. </p> <p> Example: <code>Herbert.Müller</code> becomes <code>Herbert%2eMüller</code> </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[User/Group Encoding] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="user_group_encoding" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="10604-11317" /><button type="submit" title="User/Group Encoding">Edit</button></div></form></div> <h3 class="sectionedit10" id="user_wildcards">User Wildcards</h3> <div class="level3"> <p> It is possible to use user and group wildcards in the ACLs. This can be useful for Wikis with many registered users, if you want to give each user or group a personal namespace where only he/she has write access, and you don&#039;t want to edit the ACLs for each of them. To accomplish that <strong><code>%USER%</code></strong> is replaced by the username of the currently logged in user and <strong><code>%GROUP%</code></strong> by all the groups of this user. </p> <p> In the following example a logged-in user gains full access (upload/delete) permissions for the user&#039;s namespace <code>user:&lt;username&gt;:*</code> and revoke all access from other namespaces located in <code>user:*</code>. </p> <p> In this case logged-in user has access to own namespace only and have not access to users namespaces (even view names of namespaces) of other users. </p> <pre class="file"># # Grant full access to logged in user&#039;s namespace user:%USER%:* %USER% 16 # # Allow to browse own namespace via the index user: %USER% 1 # # Allow read only access to start page located in &quot;user&quot; namespace user:start %USER% 1 # # Disable all access to user&#039;s home namespaces not owned by logged in user # (include view namespaces via the index) user:* @user 0 # # Allow members of &#039;group&#039; to edit pages in the &#039;group&#039; namespace. # BE CAREFUL, if you have a &#039;user&#039; namespace, all members of the default group # will gain access to it since %GROUP% will be replaced literally %GROUP%:* %GROUP% 2</pre> <p> <img src="/lib/images/smileys/exclaim.svg" class="icon smiley" alt=":!:" /> <strong>Note:</strong> version 2009-12-25c “Lemming” has some caveat. If you add, update or remove <abbr title="Access Control List">ACL</abbr> entries from the admin interface then DokuWiki will replace %USER% in the second field of the <abbr title="Access Control List">ACL</abbr> to <code>%25USER%25</code> (this is <a href="https://bugs.dokuwiki.org/index.php?do=details&amp;task_id=1955" class="urlextern" title="https://bugs.dokuwiki.org/index.php?do=details&amp;task_id=1955">bug FS#1955</a>). To avoid this, change permissions manually only (by editing: <code>conf/acl.auth.php</code>) or correct them manually after each operation in the admin interface because <code>%25USER%25</code> does not work as expected, only <code>%USER%</code> should be used in the <code>conf/acl.auth.php</code>. This bug is fixed in newer versions. </p> <p> <img src="/lib/images/smileys/exclaim.svg" class="icon smiley" alt=":!:" /> <strong>Note:</strong> The wildcard changed from @ to % in December 2008 – if you are upgrading from an older version you need to adjust your <abbr title="Access Control List">ACL</abbr> setup accordingly. </p> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1727777417" /><input type="hidden" name="summary" value="[User Wildcards] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="user_wildcards" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="11318-" /><button type="submit" title="User Wildcards">Edit</button></div></form></div><div class="footnotes"> <div class="fn"><sup><a href="#fnt__1" id="fn__1" class="fn_bot">1)</a></sup> <div class="content">see <a href="/config:superuser" class="wikilink1" title="config:superuser" data-wiki-id="config:superuser">superuser</a></div></div> </div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>acl.txt</bdi> · Last modified: <time datetime="2024-10-01T12:10:17+0200">2024-10-01 12:10</time> by <bdi>michaelsy</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/acl?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/acl?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/acl?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=acl&amp;1740157964" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10