DokuWiki

It's better when it's simple

Инструменты пользователя

Инструменты сайта


ru:acl

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
ru:acl [2016-12-07 16:14] – [Подстановки имён пользователей] 185.8.125.124ru:acl [2023-05-26 12:37] (текущий) – [Контроль доступа с помощью списков доступа (ACL)] 93.188.44.203
Строка 4: Строка 4:
 Однако, иногда имеет смысл ограничить доступ к определённым или всем статьям. Именно в этом случае «выходят на сцену» //списки доступа// (ACL). Данная статья делает обзор как ACL функционируют в «ДокуВики» и как их конфигурировать. Однако, иногда имеет смысл ограничить доступ к определённым или всем статьям. Именно в этом случае «выходят на сцену» //списки доступа// (ACL). Данная статья делает обзор как ACL функционируют в «ДокуВики» и как их конфигурировать.
  
-:!: **Предупреждение:** Функционал ACL включён в «ДокуВики» достаточно давно и должен быть довольно стабилен. Однако, если вас особенно беспокоит риск того, что неавторизованные пользователи получат доступ к информации вашей вики, вы никогда не должны оставлять её на компьютерах, доступ к которым разрешён из открытого интернета...+**Предупреждение:** Функционал ACL включён в «ДокуВики» достаточно давно и должен быть довольно стабилен. Однако, если вас особенно беспокоит риск того, что неавторизованные пользователи получат доступ к информации вашей вики, вы никогда не должны оставлять её на компьютерах, доступ к которым разрешён из открытого интернета...
  
 ===== Установка и конфигурация ===== ===== Установка и конфигурация =====
Строка 10: Строка 10:
 ACL могут быть включены во время работы [[installer|установщика]] и тогда будет установлена стандартная начальная политика ACL. ACL могут быть включены во время работы [[installer|установщика]] и тогда будет установлена стандартная начальная политика ACL.
 Для ручного включения ACL установите опцию [[.:config:useacl]] и скопируйте файлы ''conf/acl.auth.php.dist'' и ''conf/users.auth.php.dist'' в ''conf/acl.auth.php'' и ''conf/users.auth.php'' соответственно. Для ручного включения ACL установите опцию [[.:config:useacl]] и скопируйте файлы ''conf/acl.auth.php.dist'' и ''conf/users.auth.php.dist'' в ''conf/acl.auth.php'' и ''conf/users.auth.php'' соответственно.
 +
 +Пример минимального ​файла ''%%conf/​users.auth.php%%'' для пользователя ''admin'' с паролем ''admin''. Если вы используете его, обязательно измените пароль после этого.
 +
 +<file php conf/​users.auth.php>
 +# Логин:Хэш пароля:Настоящее имя:email:Группы, через зяпятую
 +
 +admin:$2y$10$P5YH8uIM2uAE9snRq32yAuHMb4/XAzksFd5Cakqqtsw9BWeSsyLZq:admin:admin@admin.com:admin,user
 +</file>
    
 ==== См. также ==== ==== См. также ====
Строка 19: Строка 27:
   * Опция конфигурации [[.:config:disableactions]] --- позволяет вам запретить открытую регистрацию.   * Опция конфигурации [[.:config:disableactions]] --- позволяет вам запретить открытую регистрацию.
   * Опция конфигурации [[.:config:defaultgroup]] --- группа, к которой по умолчанию приписывается новый пользователь.   * Опция конфигурации [[.:config:defaultgroup]] --- группа, к которой по умолчанию приписывается новый пользователь.
-  * [[.:plugin:usermanager|Менеджер пользователей]] --- управление пользователями.+  * [[:plugin:usermanager|Менеджер пользователей]] --- управление пользователями.
   * [[auth|Бэк-энды аутентификации]] --- идентифицируют пользователей по разным источникам.   * [[auth|Бэк-энды аутентификации]] --- идентифицируют пользователей по разным источникам.
   * [[faq:regdisable|FAQ: Как отключить открытую регистрацию пользователей]].   * [[faq:regdisable|FAQ: Как отключить открытую регистрацию пользователей]].
Строка 75: Строка 83:
   - Однако ребята из ''devel'' не хотят, чтобы их босс видел статью ''funstuff'' --- помните, что правило, точно соответствующее статье, <<перебивает>> правило, относящееся к пространству имён.   - Однако ребята из ''devel'' не хотят, чтобы их босс видел статью ''funstuff'' --- помните, что правило, точно соответствующее статье, <<перебивает>> правило, относящееся к пространству имён.
   - И, наконец, ребятам из группы //marketing// также позволено редактировать статью ''devel:marketing''.   - И, наконец, ребятам из группы //marketing// также позволено редактировать статью ''devel:marketing''.
-  - Далее установлены права для пространства имён ''marketing''. Всем членам группы ''marketing'' позволено загружать сюда файлы --- для остальных пользователей срабатывает правило **1,** поэтому они всё ещё могут создавать и редактировать статьи здесь. //bigboss// наследует свои права из строки **2,** поэтому может загружать  файлы сюда и удалять их.+  - Далее установлены права для пространства имён ''marketing''. Всем членам группы ''marketing'' позволено загружать сюда файлы  
 +    * для остальных пользователей срабатывает правило **1,** поэтому они всё ещё могут создавать и редактировать статьи здесь.  
 +    * //bigboss// наследует свои права из строки **2,** поэтому может загружать  файлы сюда и удалять их.
   - Наконец, последняя строка ограничивает доступ к начальной статье для всех только на чтение, только суперпользователь может хотя бы редактировать её.   - Наконец, последняя строка ограничивает доступ к начальной статье для всех только на чтение, только суперпользователь может хотя бы редактировать её.
  
Строка 144: Строка 154:
 Пожалуйста запомните, что **порядок не имеет значения.** Файл обрабатывается целиком, когда ищется наиболее подходящие правило для текущей связки <<статья---пользователь>>. Если такое правило найдено, дальнейшие поиски прекращаются. Если не найдено, проводится проверка на совпадение связки <<статья---группа>> для всех групп, членом которых является текущий пользователь. Если и тут совпадений нет, то поиск проводится для следующего уровня пространства имён данной статьи. И т. д., пока не достигнем правила со связкой  <<*/@ALL>>. Пожалуйста запомните, что **порядок не имеет значения.** Файл обрабатывается целиком, когда ищется наиболее подходящие правило для текущей связки <<статья---пользователь>>. Если такое правило найдено, дальнейшие поиски прекращаются. Если не найдено, проводится проверка на совпадение связки <<статья---группа>> для всех групп, членом которых является текущий пользователь. Если и тут совпадений нет, то поиск проводится для следующего уровня пространства имён данной статьи. И т. д., пока не достигнем правила со связкой  <<*/@ALL>>.
  
-**Замечание:** если в имени пользователя или группы должны быть спецсимволы (такие, как пробел, например), то они (символы) должны быть преобразованы точно также, как они преобразуются в соглашениях об URL. Это относится только к спецсимволам с ASCII-кодами ниже 128. Файл ACL использует кодировку UTF-8, поэтому могут использоваться любые многобайтовые символы в том виде как они есть.+**Замечание:** право на //удаление (delete)// относится только к медиафайлам. Статьи могут быть удалены (и восстановлены) любым пользователем, имеющим право на //редактирование (edit)//. Пользователь, у которого есть права на //загрузку (upload)//, но нет права на //удаление (delete)//, также не может переписать существующие медиафайлы. 
 + 
 +==== Кодировка пользователя / группы ==== 
 + 
 +Если в имени пользователя или группы должны быть спецсимволы (такие, как пробел, например), то они (символы) должны быть преобразованы точно также, как они преобразуются в соглашениях об URL. Это относится только к спецсимволам с ASCII-кодами ниже 128. Файл ACL использует кодировку UTF-8, поэтому могут использоваться любые многобайтовые символы в том виде как они есть. 
 + 
 +Пример: ''Herbert.Müller'' становится ''Herbert%2eMüller'' 
 (Это относится только к случаям, когда используется бэк-энд, отличный от <<[[auth:plain]]>>; <<plain backend>> в любом случае не допускает спецсимволы нигде.) (Это относится только к случаям, когда используется бэк-энд, отличный от <<[[auth:plain]]>>; <<plain backend>> в любом случае не допускает спецсимволы нигде.)
  
-**Замечание:** право на //удаление (delete)// относится только к медиафайлам. Статьи могут быть удалены (и восстановлены) любым пользователем, имеющим право на //редактирование (edit)//. Пользователь, у которого есть права на //загрузку (upload)//, но нет права на //удаление (delete)//, также не может переписать существующие медиафайлы. 
  
 ==== Подстановки имён пользователей  ==== ==== Подстановки имён пользователей  ====
  
-Есть возможность использовать **подстановки имён пользователей** (user wildcards) в списках доступа. Это может быть полезным в вики c большим количеством зарегистрированных пользователей, если вы хотите дать каждому пользователю персональное пространство имён, в котором только он имел бы доступ на редактирование, и если вы не хотите при этом редактировать ACL для каждого пользователя. А достичь это позволяет то, что подстановка ''%USER%'' заменяется на имя пользователя, который в данный момент <<залогинен>> в системе. В следующем примере зарегистрированному (залогиненомупользователю предоставляются права на загрузку и удаление медиафайлов (и все прочие права) для статьи ''people:<username>'' и пространства имён ''people:<username>''.+Есть возможность использовать **подстановки имён пользователей** (user wildcards) в списках доступа. Это может быть полезным в вики c большим количеством зарегистрированных пользователей, если вы хотите дать каждому пользователю персональное пространство имён, в котором только он имел бы доступ на редактирование, и если вы не хотите при этом редактировать ACL для каждого пользователя. А достичь это позволяет то, что подстановка ''%USER%'' заменяется на имя пользователя, который в данный момент <<залогинен>> в системе и %GROUP% все группы этого пользователя. 
 + 
 +В этом случае зарегистрированный пользователь имеет доступ только к собственному пространству имен и не имеет доступа к пространствам имен других пользователей (даже к просмотру названий пространств имен других пользователей). 
 + 
 +
 +# Предоставить полный доступ к пространству имен пользователя, вошедшего всистему 
 +user:%USER%:        %USER% 16 
 + 
 +
 +# Разрешить просматривать собственное пространство имен через "все страницы": 
 +user:                 %USER% 1 
 + 
 +
 +# Разрешить доступ только для чтения к странице "start", расположенной в пространстве имен "user"  
 +user: start           %USER% 1 
 + 
 +
 +# Отключить весь доступ к домашним пространствам имен пользователя, не принадлежащим зарегистрированному пользователю  
 +ключая просмотр пространств имен через "все страницы" 
 +user:               @user 0 
 + 
 +
 +# Разрешить членам "group" редактировать страницы в пространстве имен "group"
 +# БУДЬТЕ ОСТОРОЖНЫ, если у вас есть пространство имен "user", все члены группы по умолчанию  
 +# получит к нему доступ, поскольку %GROUP% будет заменен буквально 
 +%GROUP%:*             %GROUP% 2
  
-<file> 
-people:%USER%    %USER%    16 
-people:%USER%: %USER%    16 
-</file> 
  
-:!: **Замечание:** Не так давно для обозначения подстановок использовался символ <<@>> (<<собака>>). В более новых версиях он заменен на <<%>> (процент). Если вы обновляетесь со старой версии, то вы должны привести установки ACL в соответствие с этим.+**Замечание:** Не так давно для обозначения подстановок использовался символ <<@>> (<<собака>>). В более новых версиях он заменен на <<%>> (процент). Если вы обновляетесь со старой версии, то вы должны привести установки ACL в соответствие с этим.
  
ru/acl.1481123667.txt.gz · Последнее изменение: 2016-12-07 16:14 — 185.8.125.124

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki