CINXE.COM

ru:acl [DokuWiki]

<!DOCTYPE html> <html lang="ru" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>ru:acl [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="ru,acl"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/ru:acl?do=index" title="Все страницы"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Недавние изменения" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Текущее пространство имён" href="/feed.php?mode=list&amp;ns=ru"/> <link rel="edit" title="Править страницу" href="/ru:acl?do=edit"/> <link rel="alternate" type="text/html" title="Простой HTML" href="/_export/xhtml/ru:acl"/> <link rel="alternate" type="text/plain" title="вики-разметка" href="/_export/raw/ru:acl"/> <link rel="canonical" href="https://www.dokuwiki.org/ru:acl"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <link rel="alternate" hreflang="en" href="https://www.dokuwiki.org/acl"/> <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="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='ru';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"ru:acl","namespace":"ru","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=ru" 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">Перейти к содержанию</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Домой [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">Инструменты пользователя</h3> <ul> <li class="action login"><a href="/ru:acl?do=login&amp;sectok=" title="Войти" rel="nofollow"><span>Войти</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">Инструменты сайта</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="ru:acl" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Найти" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Найти">Найти</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="ru:acl" /><select name="do" class="edit quickselect" title="Инструменты"><option value="">Инструменты</option><optgroup label="Инструменты страницы"><option value="edit">Править страницу</option><option value="revisions">История страницы</option><option value="backlink">Ссылки сюда</option></optgroup><optgroup label="Инструменты сайта"><option value="recent">Недавние изменения</option><option value="media">Управление медиафайлами</option><option value="index">Все страницы</option></optgroup><optgroup label="Инструменты пользователя"><option value="login">Войти</option></optgroup></select><button type="submit">&gt;</button></div></form> </div> <ul> <li class="action recent"><a href="/ru:acl?do=recent" title="Недавние изменения [r]" rel="nofollow" accesskey="r">Недавние изменения</a></li><li class="action media"><a href="/ru:acl?do=media&amp;ns=ru" title="Управление медиафайлами" rel="nofollow">Управление медиафайлами</a></li><li class="action index"><a href="/ru:acl?do=index" title="Все страницы [x]" rel="nofollow" accesskey="x">Все страницы</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Вы посетили:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/ru:acl" class="breadcrumbs" title="ru:acl">acl</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Боковая панель"><div class="pad aside include group"> <h3 class="toggle">Боковая панель</h3> <div class="content"><div class="group"> <div class="notify">Этот перевод старее, чем <a href="/acl" class="wikilink1">оригинальная страница</a>, и может быть неактуальным. Смотрите, что <a href="/acl?do=diff&amp;rev=1685083934" class="wikilink1">было изменено</a>.</div><div class="plugin_translation is-dropdown"><span class="title">Перевод этой страницы<sup><a href="/localization" class="wikilink1" title="localization" data-wiki-id="localization">?</a></sup>: </span><ul><li class="a"><a class="wikilink1" title="English" href="/acl">English (en)</a></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="span"><span class="wikilink1" title="Русский">Русский (ru)</span></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>О «Докувики»</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/ru:features" class="wikilink1" title="ru:features" data-wiki-id="ru:features">Возможности</a> и <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">обзоры</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:install" class="wikilink1" title="ru:install" data-wiki-id="ru:install">Руководство по установке</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:manual" class="wikilink1" title="ru:manual" data-wiki-id="ru:manual">Руководство пользователя</a> и <a href="/ru:wiki:syntax" class="wikilink1" title="ru:wiki:syntax" data-wiki-id="ru:wiki:syntax">синтаксис</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:changes" class="wikilink1" title="ru:changes" data-wiki-id="ru:changes">Журнал изменений</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:faq" class="wikilink1" title="ru:faq" data-wiki-id="ru:faq">ЧаВО</a></div> </li> </ul> <p> <strong>Дополнительные возможности</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/ru:extensions" class="wikilink1" title="ru:extensions" data-wiki-id="ru:extensions">Шаблоны и плагины</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:development" class="wikilink1" title="ru:development" data-wiki-id="ru:development">Ресурсы для разработчиков</a></div> </li> </ul> <p> <strong>Для бизнеса</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/ru:faq:support" class="wikilink1" title="ru:faq:support" data-wiki-id="ru:faq:support">Сторонняя поддержка</a></div> </li> <li class="level1"><div class="li"> <a href="/ru:donate" class="wikilink1" title="ru:donate" data-wiki-id="ru:donate">Пожертвования</a></div> </li> </ul> <p> <strong>Наше сообщество</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">Принять участие</a></div> </li> <li class="level1"><div class="li"> <a href="https://forum.dokuwiki.org/" class="urlextern" title="https://forum.dokuwiki.org/">Форум</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Список рассылки для разработчиков</a></div> </li> </ul> <hr /> <p> Следуйте за нами на <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Мастодоне</a> и других <a href="/ru:social" class="wikilink1" title="ru:social" data-wiki-id="ru:social">социальных сетях</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Конфиденциальность</a> <em>(англ.)</em> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>ru:acl</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Содержание</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#контроль_доступа_с_помощью_списков_доступа_acl">Контроль доступа с помощью списков доступа (ACL)</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#установка_и_конфигурация">Установка и конфигурация</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#см_также">См. также</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#ограничение_доступа">Ограничение доступа</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#редактирование_acl">Редактирование ACL</a></div></li> <li class="level3"><div class="li"><a href="#правила_acl_в_примерах">Правила ACL в примерах</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#информация_о_внутреннем_представлении_acl">Информация о внутреннем представлении ACL</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#кодировка_пользователя_группы">Кодировка пользователя / группы</a></div></li> <li class="level3"><div class="li"><a href="#подстановки_имён_пользователей">Подстановки имён пользователей</a></div></li> </ul></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="контроль_доступа_с_помощью_списков_доступа_acl">Контроль доступа с помощью списков доступа (ACL)</h1> <div class="level1"> <p> «<a href="/ru:dokuwiki" class="wikilink1" title="ru:dokuwiki" data-wiki-id="ru:dokuwiki">Докувики</a>», как и большинство других вики, по умолчанию очень открыто. Каждому позволено создавать, редактировать и удалять статьи. Однако, иногда имеет смысл ограничить доступ к определённым или всем статьям. Именно в этом случае «выходят на сцену» <em>списки доступа</em> (<abbr title="Access Control List">ACL</abbr>). Данная статья делает обзор как <abbr title="Access Control List">ACL</abbr> функционируют в «ДокуВики» и как их конфигурировать. </p> <p> <strong>Предупреждение:</strong> Функционал <abbr title="Access Control List">ACL</abbr> включён в «ДокуВики» достаточно давно и должен быть довольно стабилен. Однако, если вас особенно беспокоит риск того, что неавторизованные пользователи получат доступ к информации вашей вики, вы никогда не должны оставлять её на компьютерах, доступ к которым разрешён из открытого интернета… </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Контроль доступа с помощью списков доступа (ACL)] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="контроль_доступа_с_помощью_списков_доступа_acl" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-1369" /><button type="submit" title="Контроль доступа с помощью списков доступа (ACL)">Править</button></div></form></div> <h2 class="sectionedit2" id="установка_и_конфигурация">Установка и конфигурация</h2> <div class="level2"> <p> <abbr title="Access Control List">ACL</abbr> могут быть включены во время работы <a href="/ru:installer" class="wikilink1" title="ru:installer" data-wiki-id="ru:installer">установщика</a> и тогда будет установлена стандартная начальная политика <abbr title="Access Control List">ACL</abbr>. Для ручного включения <abbr title="Access Control List">ACL</abbr> установите опцию <a href="/ru:config:useacl" class="wikilink1" title="ru:config:useacl" data-wiki-id="ru:config:useacl">useacl</a> и скопируйте файлы <code>conf/acl.auth.php.dist</code> и <code>conf/users.auth.php.dist</code> в <code>conf/acl.auth.php</code> и <code>conf/users.auth.php</code> соответственно. </p> <p> Пример минимального ​файла <code>conf/​users.auth.php</code> для пользователя <code>admin</code> с паролем <code>admin</code>. Если вы используете его, обязательно измените пароль после этого. </p> <dl class="file"> <dt><a href="/_export/code/ru:acl?codeblock=0" title="Скачать фрагмент кода" class="mediafile mf_php">conf/​users.auth.php</a></dt> <dd><pre class="code file php"><span class="co2"># Логин:Хэш пароля:Настоящее имя:email:Группы, через зяпятую </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="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Установка и конфигурация] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="установка_и_конфигурация" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1370-2448" /><button type="submit" title="Установка и конфигурация">Править</button></div></form></div> <h3 class="sectionedit3" id="см_также">См. также</h3> <div class="level3"> <p> Есть ещё несколько опций конфигурации и функциональных свойств, относящихся к ограничениям прав пользователей и настройкам <abbr title="Access Control List">ACL</abbr>. Пожалуйста, обратитесь к следующим статьям за более детальной информацией: </p> <ul> <li class="level1"><div class="li"> Опция конфигурации <a href="/ru:config:useacl" class="wikilink1" title="ru:config:useacl" data-wiki-id="ru:config:useacl">useacl</a> — разрешить <abbr title="Access Control List">ACL</abbr>.</div> </li> <li class="level1"><div class="li"> Опция конфигурации <a href="/ru:config:superuser" class="wikilink1" title="ru:config:superuser" data-wiki-id="ru:config:superuser">superuser</a> — назначение суперпользователей.</div> </li> <li class="level1"><div class="li"> Опция конфигурации <a href="/ru:config:disableactions" class="wikilink1" title="ru:config:disableactions" data-wiki-id="ru:config:disableactions">disableactions</a> — позволяет вам запретить открытую регистрацию.</div> </li> <li class="level1"><div class="li"> Опция конфигурации <a href="/ru:config:defaultgroup" class="wikilink1" title="ru:config:defaultgroup" data-wiki-id="ru:config:defaultgroup">defaultgroup</a> — группа, к которой по умолчанию приписывается новый пользователь.</div> </li> <li class="level1"><div class="li"> <a href="/plugin:usermanager" class="wikilink1" title="plugin:usermanager" data-wiki-id="plugin:usermanager">Менеджер пользователей</a> — управление пользователями.</div> </li> <li class="level1"><div class="li"> <a href="/ru:auth" class="wikilink1" title="ru:auth" data-wiki-id="ru:auth">Бэк-энды аутентификации</a> — идентифицируют пользователей по разным источникам.</div> </li> <li class="level1"><div class="li"> <a href="/faq:regdisable" class="wikilink1" title="faq:regdisable" data-wiki-id="faq:regdisable">FAQ: Как отключить открытую регистрацию пользователей</a>.</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[См. также] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="см_также" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="2449-3821" /><button type="submit" title="См. также">Править</button></div></form></div> <h2 class="sectionedit4" id="ограничение_доступа">Ограничение доступа</h2> <div class="level2"> <p> Ограничения доступа могут быть привязаны к <a href="/ru:pagename" class="wikilink1" title="ru:pagename" data-wiki-id="ru:pagename">статьям</a> и <a href="/ru:namespaces" class="wikilink1" title="ru:namespaces" data-wiki-id="ru:namespaces">пространствам имён</a>. </p> <p> Есть семь уровней доступа: <em>никаких (none)</em>, на <em>чтение (read)</em>, <em>изменение (edit)</em>, <em>создание (create)</em>, <em>загрузку (upload)</em>, <em>удаление (delete)</em> и <em>администрирование (admin)</em>. </p> <p> У <em>«чтения»</em> самый низкий уровень доступа, у <em>«удаления»</em> — самый высокий. Если разрешён один уровень доступа (например, <em>создание</em>), то и все более низкие (<em>чтение</em> и <em>изменение</em>) так же разрешены. Следует отметить, что <em>«создание»</em>, <em>«загрузка»</em> и <em>«удаление»</em> относятся только к пространствам имён. </p> <p> Правила, установленные для пространств имён, применяются и к пространствам имён медиафайлов точно также, как и к пространствам имён статей. </p> <p> Когда система «ДокуВики» определяет права конкретного пользователя для доступа к конкретной статье, она выбирает из всего списка правил одно, согласно следующей процедуре: </p> <ul> <li class="level1"><div class="li"> выбираются все правила, для которых выполняется условие <code>&lt;пользователь или группа&gt;</code>, т. е., либо имя пользователя совпадает с указанным, либо, если указана группа, то пользователь принадлежит этой группе. Остальные правила «выбрасываются» из рассмотрения.</div> </li> <li class="level1"><div class="li"> из оставшихся в рассмотрении выбирается правило, для которого наилучшим образом выполняется условие <code>&lt;namespace:page&gt;</code>, это мы называем specific matching (более специфичное совпадение).</div> </li> <li class="level1"><div class="li"> если в нескольких правилах происходит совпадение с условием <code>&lt;namespace:page&gt;</code> в одинаковой мере, то выбирается правило с наибольшим <code>&lt;уровнем доступа&gt;</code>.</div> </li> </ul> <p> Пользователи входят в группы, к которым они были приписаны менеджером пользователей (или бекэндом аутентификации). Однако есть две специальные <strong>группы:</strong> </p> <ul> <li class="level1"><div class="li"> <strong>@ALL</strong>. Все пользователи, даже не совершившие вход в систему, являются членами группы ALL. Вы можете использовать эту группу для того, чтобы ограничить права для всех пользователей по умолчанию и ослабить это ограничение для нескольких выбранных пользователей.</div> </li> <li class="level1"><div class="li"> <strong>@user</strong>. Все пользователи, зарегистрировавшие себя, по умолчанию автоматически являются членами группы user. Используйте эту группу для назначения прав пользователям, совершившим вход в систему. Название данной группы задаётся в опции <a href="/ru:config:defaultgroup" class="wikilink1" title="ru:config:defaultgroup" data-wiki-id="ru:config:defaultgroup">defaultgroup</a>. В отличие от виртуальной группы ALL, user — это реальная группа, в которую автоматически добавляются все зарегистрированные пользователи при условии, что для авторизации используется plain backend. Если вы используете другой бэк-энд, вам нужно использовать группы предоставляемые этим бекэндом.</div> </li> </ul> <p> Представление групп внутри системы и в менеджере <abbr title="Access Control List">ACL</abbr> отличается тем, что перед именем группы ставится символ «@». </p> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Ограничение доступа] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="ограничение_доступа" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="3822-8462" /><button type="submit" title="Ограничение доступа">Править</button></div></form></div> <h3 class="sectionedit5" id="редактирование_acl">Редактирование ACL</h3> <div class="level3"> <p> Наиболее простой способ добавить новое или отредактировать существующие правила, это использовать <a href="/plugin:acl" class="wikilink1" title="plugin:acl" data-wiki-id="plugin:acl">менеджер ACL</a>, доступный из панели администратора. Доступно <a href="/plugin:acl" class="wikilink1" title="plugin:acl" data-wiki-id="plugin:acl">детальное описание</a> этого интерфейса. </p> <p> Обычно необходимо совершить три шага для добавления нового правила <abbr title="Access Control List">ACL</abbr>: </p> <ol> <li class="level1"><div class="li"> выберите пространство имён или статью, на которые накладываются ограничения, из дерева навигации, расположенного вверху слева;</div> </li> <li class="level1 node"><div class="li"> выберите, к кому это правило <abbr title="Access Control List">ACL</abbr> должно применяться:</div> <ul> <li class="level2"><div class="li"> либо отметив уже существующего пользователя или группу из выпадающего меню;</div> </li> <li class="level2"><div class="li"> либо выбрав тип (User: или Group:) и введя имя (пользователя или группы) в соответствующем поле;</div> </li> </ul> </li> <li class="level1"><div class="li"> установите подходящие права доступа.</div> </li> </ol> <p> Существующие правила могут быть изменены или удалены в таблице, приведенной внизу окна менеджера <abbr title="Access Control List">ACL</abbr>. </p> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Редактирование ACL] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="редактирование_acl" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="8463-9940" /><button type="submit" title="Редактирование ACL">Править</button></div></form></div> <h3 class="sectionedit6" id="правила_acl_в_примерах">Правила ACL в примерах</h3> <div class="level3"> <p> В этом разделе мы объясним как работают правила доступа, используя фиктивный пример настроек, которые в менеджере <abbr title="Access Control List">ACL</abbr> выглядят следующим образом: </p> <p> <img src="/_media/aclexample.png" class="media" loading="lazy" title="Пример первый" alt="Пример первый" /> </p> <p> Рассмотрим каждую из строк: </p> <ol> <li class="level1"><div class="li"> Эта строка устанавливает права для всех в основном пространстве имён, позволяя каждому редактировать и создавать статьи. Однако загрузка файлов на сайт не разрешена.</div> </li> <li class="level1"><div class="li"> Пользователю <em>bigboss</em> предоставлены все права.</div> </li> <li class="level1"><div class="li"> Теперь доступ к пространству имён <code>devel</code> ограничен. Всем запрещено делать что-либо.</div> </li> <li class="level1"><div class="li"> Ну хорошо, на самом деле, не всем — мы дали членам группы <em>devel</em> полные права здесь.</div> </li> <li class="level1"><div class="li"> И конечно <em>bigbossу</em> тоже позволено — и он единственный, кто может удалять загруженные файлы.</div> </li> <li class="level1"><div class="li"> А команда <em>marketing</em> может читать всё в пространстве имён, но только читать.</div> </li> <li class="level1"><div class="li"> Однако ребята из <code>devel</code> не хотят, чтобы их босс видел статью <code>funstuff</code> — помните, что правило, точно соответствующее статье, «перебивает» правило, относящееся к пространству имён.</div> </li> <li class="level1"><div class="li"> И, наконец, ребятам из группы <em>marketing</em> также позволено редактировать статью <code>devel:marketing</code>.</div> </li> <li class="level1 node"><div class="li"> Далее установлены права для пространства имён <code>marketing</code>. Всем членам группы <code>marketing</code> позволено загружать сюда файлы </div> <ul> <li class="level2"><div class="li"> для остальных пользователей срабатывает правило <strong>1,</strong> поэтому они всё ещё могут создавать и редактировать статьи здесь. </div> </li> <li class="level2"><div class="li"> <em>bigboss</em> наследует свои права из строки <strong>2,</strong> поэтому может загружать файлы сюда и удалять их.</div> </li> </ul> </li> <li class="level1"><div class="li"> Наконец, последняя строка ограничивает доступ к начальной статье для всех только на чтение, только суперпользователь может хотя бы редактировать её.</div> </li> </ol> <p> Давайте взглянем на второй пример, чтобы лучше понять <strong>specific matching</strong> (более специфичное совпадение): </p> <p> <img src="/_media/aclexample2.png" class="media" loading="lazy" title="Пример второй" alt="Пример второй" /> </p> <p> На этот раз мы разберём, какие правила выберутся для разных пользователей при их попытке получить права к статье <code>private:bobspage</code>. </p> <ol> <li class="level1 node"><div class="li"> для обычного пользователя <em>abby</em>:</div> <ul> <li class="level2"><div class="li"> условие <code>&lt;пользователь или группа&gt;</code> выполняется в трёх правилах: №1, №2 и №4.</div> </li> <li class="level2"><div class="li"> условие <code>&lt;namespace:page&gt;</code> лучше всего (другими словами: более конкретно) выполняется в правиле №4.</div> </li> <li class="level2"><div class="li"> согласно правилу №4 уровень доступа пользователя <em>abby</em> к статье <code>&lt;private:bobspage&gt;</code> определяется 0, т. е. у <em>abby</em> нет никакого доступа к этой статье.</div> </li> </ul> </li> <li class="level1 node"><div class="li"> для обычного пользователя <em>bob</em>:</div> <ul> <li class="level2"><div class="li"> условие <code>&lt;пользователь или группа&gt;</code> выполняется в четырех правилах: №1, №2, №4 и №6.</div> </li> <li class="level2"><div class="li"> условие <code>&lt;namespace:page&gt;</code> лучше всего выполняется в правиле №6. (Скажу больше, тут <code>&lt;namespace:page&gt;</code> <strong>точно</strong> совпадет со статьей)</div> </li> <li class="level2"><div class="li"> уровень доступа <em>bobа</em>: 16.</div> </li> </ul> </li> <li class="level1 node"><div class="li"> <em>bob</em> забыл войти в систему и пытается как неавторизованный пользователь получить доступ к своей статье:</div> <ul> <li class="level2"><div class="li"> условие <code>&lt;пользователь или группа&gt;</code> выполняется в двух правилах: № 1 и № 4.</div> </li> <li class="level2"><div class="li"> условие <code>&lt;namespace:page&gt;</code> лучше всего выполняется в правиле № 4.</div> </li> <li class="level2"><div class="li"> уровень доступа: 0.</div> </li> </ul> </li> <li class="level1 node"><div class="li"> для пользователя <em>charlie,</em> который входит в группу staff:</div> <ul> <li class="level2"><div class="li"> условие <code>&lt;пользователь или группа&gt;</code> выполняется в пяти правилах: с №1 по №5.</div> </li> <li class="level2"><div class="li"> условие <code>&lt;namespace:page&gt;</code> лучше всего выполняется в двух правилах №4 и №5, но в правиле №5 <code>&lt;уровнем доступа&gt;</code> выше.</div> </li> <li class="level2"><div class="li"> уровень доступа <em>charlie</em>: 16.</div> </li> </ul> </li> </ol> <p> Заметим следующее: могло бы показаться, что правило №5 дублирует правило №3, но без пятого правила члены группы staff не получили бы доступ к пространству имён private, т. к. этому препятствовало бы правило №4. </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Правила ACL в примерах] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="правила_acl_в_примерах" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="9941-15713" /><button type="submit" title="Правила ACL в примерах">Править</button></div></form></div> <h2 class="sectionedit7" id="информация_о_внутреннем_представлении_acl">Информация о внутреннем представлении ACL</h2> <div class="level2"> <p> Ограничения доступа хранятся в файле <code>conf/acl.auth.php</code>, который должен быть доступен для записи веб-серверу, если вы хотите использовать интерфейс администрирования <abbr title="Access Control List">ACL</abbr>. </p> <p> <img src="/lib/images/smileys/exclaim.svg" class="icon smiley" alt=":!:" /> Не рекомендуется вручную править этот файл, вместо этого используйте интерфейс администратора. </p> <p> Пустые строки и комментарии, начинающиеся с символа «#», игнорируются. </p> <p> Каждая строка содержит три поля разделенных пробелами: </p> <ul> <li class="level1"><div class="li"> Ресурс, на который накладывается ограничение. Это может быть <a href="/ru:pagename" class="wikilink1" title="ru:pagename" data-wiki-id="ru:pagename">статья</a> или <a href="/ru:namespaces" class="wikilink1" title="ru:namespaces" data-wiki-id="ru:namespaces">пространство имён</a>. Пространства имен отмечаются дополнительной звездочкой (см. пример ниже).</div> </li> <li class="level2"><div class="li"> Имя пользователя или группы. Имя группы отмечается символом «@» в начале.</div> </li> <li class="level2"><div class="li"> Уровень доступа (см. ниже).</div> </li> </ul> <p> Существует 7 уровней доступа. Они представляются целыми числами. Более высокий уровень включает в себя все более низкие. Если вы можете редактировать, то вы также автоматически можете читать. Есть уровень доступа <em>admin</em> (соответствует числу <em>255</em>), который никогда не должен использоваться в файле <code>conf/acl.auth.php</code>. Он используется только внутри системы при сравнении с опцией <a href="/ru:config:superuser" class="wikilink1" title="ru:config:superuser" data-wiki-id="ru:config:superuser">superuser</a>. </p> <div class="table sectionedit8"><table class="inline"> <thead> <tr class="row0"> <th class="col0 centeralign"> Имя </th><th class="col1 centeralign"> Уровень </th><th class="col2 centeralign"> Применимо к… </th><th class="col3 leftalign"> Права доступа </th><th class="col4 centeralign"> Константа в исходниках «Докувики» </th> </tr> </thead> <tr class="row1"> <td class="col0 leftalign"> none </td><td class="col1 centeralign"> 0 </td><td class="col2 leftalign"> статьи, простр. имён </td><td class="col3 leftalign"> нет доступа — полный запрет </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"> статьи, простр. имён </td><td class="col3 leftalign"> право на чтение </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"> статьи, простр. имён </td><td class="col3 leftalign"> можно изменять существующие статьи </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 leftalign"> простространства имён </td><td class="col3 leftalign"> можно создавать новые статьи </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 leftalign"> простространства имён </td><td class="col3 leftalign"> можно загружать медиафайлы </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 leftalign"> простространства имён </td><td class="col3 leftalign"> можно заменять или удалять медиафайлы </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 </td><td class="col3 leftalign"> суперпользователь<sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup> может изменять настройки </td><td class="col4 leftalign"> AUTH_ADMIN </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_8"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Таблица] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table" /><input type="hidden" name="range" value="17747-18893" /><button type="submit" title="Таблица">Править</button></div></form></div> <p> Вот пример представления, которое совпадает с первым примером, приведённому выше: </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> Пожалуйста запомните, что <strong>порядок не имеет значения.</strong> Файл обрабатывается целиком, когда ищется наиболее подходящие правило для текущей связки «статья—пользователь». Если такое правило найдено, дальнейшие поиски прекращаются. Если не найдено, проводится проверка на совпадение связки «статья—группа» для всех групп, членом которых является текущий пользователь. Если и тут совпадений нет, то поиск проводится для следующего уровня пространства имён данной статьи. И т. д., пока не достигнем правила со связкой «*/@ALL». </p> <p> <strong>Замечание:</strong> право на <em>удаление (delete)</em> относится только к медиафайлам. Статьи могут быть удалены (и восстановлены) любым пользователем, имеющим право на <em>редактирование (edit)</em>. Пользователь, у которого есть права на <em>загрузку (upload)</em>, но нет права на <em>удаление (delete)</em>, также не может переписать существующие медиафайлы. </p> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Информация о внутреннем представлении ACL] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="информация_о_внутреннем_представлении_acl" /><input type="hidden" name="codeblockOffset" value="1" /><input type="hidden" name="range" value="15714-20957" /><button type="submit" title="Информация о внутреннем представлении ACL">Править</button></div></form></div> <h3 class="sectionedit9" id="кодировка_пользователя_группы">Кодировка пользователя / группы</h3> <div class="level3"> <p> Если в имени пользователя или группы должны быть спецсимволы (такие, как пробел, например), то они (символы) должны быть преобразованы точно также, как они преобразуются в соглашениях об <abbr title="Uniform Resource Locator">URL</abbr>. Это относится только к спецсимволам с <abbr title="American Standard Code for Information Interchange">ASCII</abbr>-кодами ниже 128. Файл <abbr title="Access Control List">ACL</abbr> использует кодировку UTF-8, поэтому могут использоваться любые многобайтовые символы в том виде как они есть. </p> <p> Пример: <code>Herbert.Müller</code> становится <code>Herbert%2eMüller</code> </p> <p> (Это относится только к случаям, когда используется бэк-энд, отличный от «<a href="/auth:plain" class="wikilink2" title="auth:plain" rel="nofollow" data-wiki-id="auth:plain">plain</a>»; «plain backend» в любом случае не допускает спецсимволы нигде.) </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Кодировка пользователя / группы] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="кодировка_пользователя_группы" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="20958-22023" /><button type="submit" title="Кодировка пользователя / группы">Править</button></div></form></div> <h3 class="sectionedit10" id="подстановки_имён_пользователей">Подстановки имён пользователей</h3> <div class="level3"> <p> Есть возможность использовать <strong>подстановки имён пользователей</strong> (user wildcards) в списках доступа. Это может быть полезным в вики c большим количеством зарегистрированных пользователей, если вы хотите дать каждому пользователю персональное пространство имён, в котором только он имел бы доступ на редактирование, и если вы не хотите при этом редактировать <abbr title="Access Control List">ACL</abbr> для каждого пользователя. А достичь это позволяет то, что подстановка <code>%USER%</code> заменяется на имя пользователя, который в данный момент «залогинен» в системе и %GROUP% все группы этого пользователя. </p> <p> В этом случае зарегистрированный пользователь имеет доступ только к собственному пространству имен и не имеет доступа к пространствам имен других пользователей (даже к просмотру названий пространств имен других пользователей). </p> <p> # # Предоставить полный доступ к пространству имен пользователя, вошедшего всистему user:%USER%:* %USER% 16 </p> <p> # # Разрешить просматривать собственное пространство имен через «все страницы»: user: %USER% 1 </p> <p> # # Разрешить доступ только для чтения к странице «start», расположенной в пространстве имен «user» user: start %USER% 1 </p> <p> # # Отключить весь доступ к домашним пространствам имен пользователя, не принадлежащим зарегистрированному пользователю # (включая просмотр пространств имен через «все страницы») user:* @user 0 </p> <p> # # Разрешить членам «group» редактировать страницы в пространстве имен «group». # БУДЬТЕ ОСТОРОЖНЫ, если у вас есть пространство имен «user», все члены группы по умолчанию # получит к нему доступ, поскольку %GROUP% будет заменен буквально %GROUP%:* %GROUP% 2 </p> <p> <strong>Замечание:</strong> Не так давно для обозначения подстановок использовался символ «@» («собака»). В более новых версиях он заменен на «%» (процент). Если вы обновляетесь со старой версии, то вы должны привести установки <abbr title="Access Control List">ACL</abbr> в соответствие с этим. </p> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/ru:acl"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1685097449" /><input type="hidden" name="summary" value="[Подстановки имён пользователей] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="подстановки_имён_пользователей" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="22024-" /><button type="submit" title="Подстановки имён пользователей">Править</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">Cм. <a href="/ru:config:superuser" class="wikilink1" title="ru:config:superuser" data-wiki-id="ru:config:superuser">superuser</a></div></div> </div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>ru/acl.txt</bdi> · Последнее изменение: <time datetime="2023-05-26T12:37:29+0200">2023-05-26 12:37</time> — <bdi>93.188.44.203</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">Инструменты страницы</h3> <div class="tools"> <ul> <li class="edit"><a href="/ru:acl?do=edit" title="Править страницу [e]" rel="nofollow" accesskey="e"><span>Править страницу</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="/ru:acl?do=revisions" title="История страницы [o]" rel="nofollow" accesskey="o"><span>История страницы</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="/ru:acl?do=backlink" title="Ссылки сюда" rel="nofollow"><span>Ссылки сюда</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="Наверх [t]" rel="nofollow" accesskey="t"><span>Наверх</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">Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: <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=ru%3Aacl&amp;1743975357" 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