ACL Учебник

мануалы
Ответить
niknikto
Команда Mumble.ru
Сообщения: 5
Зарегистрирован: 23 окт 2009, 11:00
Благодарил (а): 4 раза
Поблагодарили: 7 раз

ACL Учебник

Сообщение niknikto »

Что мы будем делать

Мы собираемся установить сервер, имеющий общий канал чата, где каждый может говорить. Мы также создадим пользовательские каналы, где любой, кто находится в группе auth может создавать и администрировать свой собственный канал. Затем, как пользователь из группы auth, мы создадим пару каналов для игры, где люди могут говорить либо со своей командой либо со всеми сразу путем нажатия одной клавиши.

Итак начнем

Настройка прав на весь сервер

Во-первых, нам необходимо создать пароль для суперпользователя (SuperUser). Если вы еще не сделали этого, то вы можете сделать это, набрав в консоли/командной строке следующие:

Код: Выделить всё

murmur -ini /path/to/murmur.ini -supw ваш_пароль
Затем, мы запустим Mumble и подключимся к серверу в качестве суперпользователя с паролем, которые мы только что установили. Вы должны увидеть что-то подобное:
mumbletut1dx8.png
mumbletut1dx8.png (11.07 КБ) 64544 просмотра
Давайте начнем с прав доступа. Откройте редактор ACL, вы можете сделать это, выбрав "Изменить ACL" из меню “Канал”. После этого, вы увидите окно с двумя вкладками. Первая - определение пользователей, которые находятся в группе и т.д. Вторая из них используется для назначения прав группам. Сейчас, в этой вкладке, вы должны видеть два набора правил:

•Первый позволяет людям в группе AUTH создавать каналы в корневом канале и его подканалах.

•Второй позволяет людям в группе Администраторы устанавливать права доступа

Сейчас мы удалим правила, связанные с группой AUTH , выбрав его и нажав кнопку "Удалить". Мы не хотим, чтобы кто то входил в корневой канал, мы сделаем общий чат канал для этого. Итак, мы добавим правило для этого. Нажмите кнопку “Добавить” и снимите все флажки в столбце, за исключением одного Traverse(Пересечение)

Мы оставили отмеченным только Traverse потому, что он будет запрещать людям входить в этот канал и подканалы. Так как каждый другой канал субканал корневого, то будет правильнее запретить людям входить в другие каналы. Поэтому, мы оставим его отмеченым. Настройки по умолчанию являются:

•Разрешить: Traverse, Вход, Говорить, AltSpeak

•Запретить: Писать, Заглушить, Переместить / Выгнать, Создавать канал и Link канал

Если вам интересно, да, мы могли бы оставить запись “Писать, Заглушить, Переместить / Выгнать, Создавать канал и Link канал” не отмечеными , а они все равно будут запрещены. Нет необходимости, оставлять эти права запрещеными, поскольку они являются по умолчанию. Теперь на вашем экране должно быть так:
mumbletut2hw0.png
В Mumble правила применяются сверху вниз. Сейчас:

@admins allow write

Это правило будет бесполезно,так как следуещее правило перезапишет его

@all deny write ...

Поэтому нам придется это исправить. Просто выберите правила, @all и нажмите вверх. Это должно переместить его выше. Вот мы и установили некоторые настройки по умолчанию для всего сервера:)
mumbletut3if8.png
Создание общего чат канала и установка для него прав

Этот канал будет общим чатом для всех, кто присоединиться к нашему каналу. Так как мы не позволяем им говорить в корневом канале, они должны присоединиться к этому каналу. Мы должны установить приветственное сообщение на сервере, которое предупреждает об этом. Сперва, создадим канал. Это очень просто, следует нажать “Канал-> Добавить” (или правой кнопкой мыши на канале , и нажмите кнопку “Добавить”, чтобы создать подканал). В появившемся окне введите название канала, нажмите кнопку ОК .

Теперь, мы дадим права каждому человеку который хочет говорить здесь. Для этого изменим ACL (помните о необходимости выбора нового канала перед этим). Вы увидите правила корневого канала, но если вы выберите их, вы увидите, что все параметры выделены. Это потому, что они унаследовали права от родителя канала (в данном случае, Root). Если вы уберете опцию “Наследовать ACL”, они исчезнут, но мы не будем этого делать. Просто добавьте новое правило, которое позволит каждому говорить или AltSpeak и нажмите кнопку ОК для его сохранения. Легко, не правда ли?
mumbletut4wu0.png
Создание каналов. Клиентские каналы и настройки.

Создания своего собственного канала происходит так же, как мы это делали раньше. У вас должно получится нечто подобное :
mumbletut5qo2.png
mumbletut5qo2.png (10.91 КБ) 64544 просмотра
Теперь мы будем раздавать созданым каналам права. Просто зайдите в редактор ACL, добавим новое правило, в списке выберите группу или напишите AUTH и выберите канал установив флажок. Предупреждение: Если вы вводите название группы, убедитесь, что вы нажали клавишу Enter, после того как закончили. Это позволит обновить правила группы. Вы можете видеть, что если вы напечатаете и не нажмете Enter, группу в верхнем листинге не изменится.
mumbletut6bsq9.png
mumbletut6vl9.png
И сейчас мы имеем канал, где люди могут создавать свои собственные каналы. Обратите внимание, что они не могут создавать собственные корневые каналы, но они по-прежнему могут создавать субканалы.

Зарегистрированный пользователь

В этой части мы запустим зарегистрированного игрока в группе auth с очень оригинальным именем: “AuthedPlayer”. Он будет создавать свои собственные каналы , небольшой общественный канал и два частных подканала, один для каждой группы игры. Мы бы хотели чтобы они могли говорить со своей группой или с обеими группами сразу. Мы увидим, как сделать это с правом AltSpeak, связывая каналы и многое другое.

Создание основного канала

После входа в систему, мы можем проверить, что мы не можем войти в корневые каналы, и мы не можем войти в клиентский канал, каналы и т.д. Как только мы проверили, что разрешения работают, как ожидалось, мы начнем создавать наш первый канал. Просто щелкним правой кнопкой мыши на клиентском канале (помните, что вы все еще можете использовать меню) и нажмем кнопку “Добавить”, чтобы создать новый канал. Я назвал его "мой частный канал". Мы автоматически добавлены в группу администраторов в этот канал, так что можно писать в нем (помните правила корневого канала? Они унаследовали все, вплоть до нашего канала). Но это также означает, что мы получим разрешение создавать каналы наследники, поэтому каждый, кто находится в группе auth может сделать канал внутри нашего. Но нам это не нравится ...
mumbletut7dw7.png
Наше правило будет перезаписывать наследника, потому что унаследовал правила находящихся выше. Так что теперь у нас есть защищеный канал , мы будем давать права на вход и разговор:
mumbletut8lu5.png
Обратите внимание, что мы отключили Применение прав к суб-каналам. Так как подканалы не будут публичными, мы не хотим, чтобы входили без разрешения. Если мы не отключим эту опцию, мы должны создать еще одно правило просто отказывать в разрешении войти. Этот путь проще. А теперь у нас есть канал и он готов к работе. Давайте продолжим с субканалами

Создание субканалов

Во-первых, мы создадим два субканала нашего канала. Как обычно, я назвал их очень творчески ... Команда1 и Команда2. Мы могли бы определить правила для каждого из них, но быстрее определить их в родительском канале (мой частный канал), и внести субканалы в наследники правил. Во-первых, мы хотим, чтобы люди в одной команде могли говорить. Это делается так:
mumbletut9ix7.png
Заметьте, что мы неотмечаем опцию Применения к этому каналу, так как мы определяем это правило только для субканалов. Более интересным является использовать специальную группу in . Эта группа относится к людям, которые находятся внутри канала к которым относятся правила. Похоже, она такая же, как и все, но она совершенно другая: оба канала будут связаны. Это означает, что люди в разных каналах будут слышать друг друга. Но мы хотим, что бы люди могли слышать только товарищей по команде. Поэтому мы используем группу in чтобы дать права “Говорить” людям в том же самом канале. Это означает, что люди в “Команде2” не смогут услышать людей в “Команде1” так как люди в “Команде1” не имеют права говорить в “Команде2” потому что в группе разрешения работают только в своем собственном канале. Это немного сложно, чтобы понять сначала, но это очень полезно. Чтобы понять это, Вы должны сначала понять, что у каждого канала есть свои отдельные группы. Это означает, что в группе в “Команде1” не та же самая группа что в группе в “Команде2”.

Чтобы объяснить это лучше я буду использовать некоторые имена ...

Джек в Команде1

Джон в Команде2

Оба канала связаны, таким образом голос будет передан от одного до другого, пока говорящий имеет права в канале адресата. Джек говорит, но Джон не будет в состоянии услышать это. Это потому что Джек не имеет никаких прав говорить в Команде2, поскольку он не находится в группе в Команде2. Таким образом голос не будет передан через канал, и Джон не будет в состоянии услышать Джека. Если мы использовали all вместо in для правила, Джек и Джон услышат друг друга без проблемы, поскольку все находятся в all группе.

niknikto
Команда Mumble.ru
Сообщения: 5
Зарегистрирован: 23 окт 2009, 11:00
Благодарил (а): 4 раза
Поблагодарили: 7 раз

Re: ACL Учебник

Сообщение niknikto »

Ну, давайте продолжать. Мы хотели, чтобы люди могли говорить в другие команды. Это происходит, когда AltSpeak удобно. Мы добавляем правило, следующим образом:
mumbletut10sq9.png
Это позволит всем (обе группы) говорить с друг другом когда AltSpeaking. AltSpeak включается, нажатием клавиши, определенной в Ярлыках (в опциях Mumble). Удерживая эту клавишу, голос будет передан, используя права AltSpeak. Поскольку мы позволили каждому AltSpeak, и оба канала связаны, означает, что, если кто-то говорит, нажимая клавишу, его услышат обе группы.

Как это выглядит, для некоторых анонимных игроков

Сначала вы должны пригласить “invite” их в ваш командный канал (вы можете перемещать их из общественных каналов в вашу команды с помощью drag-and-drop). Они должны быть в Вашем общественном канале, чтобы сделать это, поскольку Вы должны иметь разрешения Перемещения.

Если не AltSpeaking...
mumbletut11zg8.png
mumbletut11bkf8.png
Если AltSpeaking:
mumbletut12ef3.png
mumbletut12bko1.png
Послесловие

Это краткое руководство является вольным переводом https://wiki.mumble.info/wiki/ACL_Tutorial/English и не объясняет многое. Существует еще много правил который помогают сделать то или иное действие проще чем описано выше. Не бойтесь эксперементировать с ними! Спасибо и не забываете оставлять комментарии :;):

P.S. Возможны ошибки, опечатки и не точности!Отпишитесь об этом здесь.
B0nuse писал(а):Замечания:
Обращаю внимание, что есть изменения в новых версиях...
Предлагаю сделать свои скриншоты, чтобы привести в соответствие с версией 1.1.8 или 1.2.0

B0nuse
Site Admin
Сообщения: 1588
Зарегистрирован: 27 июл 2009, 08:58
Благодарил (а): 40 раз
Поблагодарили: 363 раза
Контактная информация:

Основы ACL

Сообщение B0nuse »

Активация окна для редактирования списков Групп и ACL
Чтобы активировать вкладки "Группы" и "Списки ACL" для каналов, Вы должны установить галочку "Экспертные настройки" в Настройках (меню Настройки-Настройки).

Группы
Для того, чтобы редактировать существующую группу или создать новую, кликните правой кнопкой мыши по главному каналу и нажмите "Изменить" (в подавляющем большинстве случаев создание групп производится из главного канала для более простого управления). Теперь выберите вкладку "Группы". Теперь у Вас есть 2 варианта - Вы можете либо выбрать уже созданную группу, либо добавить другую простым нажатием пустого окна под названием "Группа", после чего необходимо будет ввести название группы и подтвердить свой выбор нажатием клавиши "Enter". Теперь, когда группа уже выбрана, Вы можете добавлять в нее зарегистрированных пользователей посредством выбора их имен в левом нижнем окне или ввода зарегистрированного имени пользователя и нажатия кнопки "Добавить".
Группы привязаны к определенному каналу, но также могут быть причастными к подканалам в том случае, если в главном канале стоит флажок "Наследуемый", а в подканале стоит флажок "Наследовать" (рассматривается наиболее частый случай). Этот способ является наиболее удобным для администрирования каналов и их списков управления доступом (ACL); для этого установите ACL вверху списка каналов с похожей структурой привилегий и выберите группу сообществ или подканалов.

Для каждого канала в группе существуют 3 вида данных:
  1. "Пользователи": список пользователей для добавления в группу (например, тогда, когда они еще не являются членами той же самой группы в родительском канале).
  2. "Унаследованные пользователи": список пользователей, заимствованных из той же самой группы в главном канале.
  3. "Исключенные пользователи": список выбранных участников для удаления из группы.
Замечание: В группу могут быть добавлены только зарегистрированные пользователи.

Пример
Приведем пример на практике — на группе администраторов (admin). Каждый раз, когда пользователь создает канал, он автоматически попадает в группу администраторов этого канала. Он лишь является участником этой группы, не обладая какими-либо привилегиями, хотя Murmur по умолчанию производит установку ACL таким образом, что участники группы администраторов обладают всеми правами в ACL.

Рассмотрим структуру каналов:
  • Корень
    • A
      • B
    • C
      • D
пользователь "Большой Босс" является лишь участником группы администраторов в Корне. В канале А пользователь "Босс А", а также "Босс В" в канале В добавлены в участники администраторов.
В каналах Корень, A и B для группы администраторов на вкладке Группы установлены флажки "Наследовать" и "Наследуемый" (по умолчанию в Murmur). Таким образом, пользователь, являющийся участником этой группы в любом из этих каналов, является также унаследованным членом в подканале. Иначе говоря, итоговый список участников канала В — Большой Босс, Босс А, Босс В. Удобство этой системы заключается в том, что если в дальнейшем мы захотим добавить пользователя "Супер Босс" в администраторы в Корне, то он автоматически станет администратором каналов А и В.
Попробуем додумать ситуацию и скажем, что пользователь "Босс С" состоит в списке участников канала С, но теперь администратор не помечен флажком "Наследовать". Это означает, что "Большой Босс" не находится в группе администраторов и любые изменения тут видны не будут. Канал D будет заимствовать список из канала C, тем не менее, C также будет идентифицировать администратора как не наследственного.

ACL
ACL (списки управления доступом) привязаны к конкретному каналу. В канале A может быть указано, будет ли он наследовать ACL корневого канала, но в нём не может быть указано, какие конкретно, т.е. все или ничего. ACL оцениваются по порядку, сверху вниз по всей цепочке каналов. Для того, чтобы добавить или удалить ACL, кликните правой кнопкой мыши по каналу, у которого Вы хотите изменить ACL; после этого выберите "Изменить ACL". Как только Вы добавите ACL, Вы можете настроить группу ACL посредством ввода ее имени в левом нижнем окне под названием "Группа". Если вы хотите установить ACL только для конкретного пользователя, оставьте поле "Группа" пустым и введите имя пользователя в поле под названием "ID пользователя".
Для каждой записи ACL соответствует пользователь или группа. Имя пользователя должно быть уникальным, зарегистрированным, в то время, как группа может быть любой, для которой установлен ACL. Учтите, что группы оцениваются в том канале, в котором выполняется ACL, что немаловажно для унаследованных ACL. Если группа начинается с "!", то ее участники инвертируются (т.е. условие – все НЕ участники группы), а если начинается с "~", то они рассматриваются в контексте канала, в котором выполняются ACL (при этом, канал не является активным).

all - Все
auth - Все авторизированные пользователи
in - Все пользователи внутри выбранного канала
out - Все пользователи, находящиеся вне данного канала

Для каждой записи права либо разрешены, либо запрещены; в случае конфликта второй вариант имеет преимущество. Помните, что все записи сортированы по порядку, поэтому, если Вы сделаете следующий набор записей:
  • @all запрещено Говорить
  • @all разрешено Говорить
То всем будет разрешено общаться. В противоположном случае
  • @all разрешено Говорить
  • @all запрещено Говорить
Всем будет запрещен доступ к общению.

Каждая запись может быть применена в текущем канале, в подканалах или одновременно в обоих. В большинстве случаев, пользователей интересует одновременное применение. Помните, что для записи, применённой к подканалу, вам также необходимо применять ее к подканалам и разрешать наследование в подканалах.

Подгруппы
Существует специальная группа, именуемая подгруппой, которая имеет свое специальное предназначение. Подгруппа используется как sub,a,b,c, где a — минимальное количество общих родителей, а b и c ограничивают глубину пути:
  • b - минимальная и c — максимальная длина пути, измеренные от канала, привлеченного с помощью a.
  • Если какие-либо из параметров пропущены, не будет никаких минимум/максимумов длины пути.
Это довольно сложная, но в то же время эффективная система. Для примера приведем следующую схему:
  • Root
    • A
      • A1
        • Sub1
        • Sub2
      • A2
      • A3
    • B
      • B1
      • B2
Ограничим доступ всем в Root. Затем, в канале A мы определим
  • @~sub,0,1 +Вход
Прежде всего, этот ACL будет принят контекстом выбранного канала, поскольку группа начинается с ~.
Первый параметр (0) определяет, как много должно существовать дополнительных элементов имени пути. Ноль означает, что мы требуем соответственно в этой точке. Это, в свою очередь, означает, что любому пользователю будет соответствовать путь Root.A. Если параметр был бы 1 и мы бы находились в канале Sub2, путь к пользователю должен соответствовать Root.A.Sub1. Установка этого параметра в положительных значениях имеет значения только для прикрепленных групп (с ~).
Второй параметр требует пути к оцениваемому каналу как минимум на один элемент длиннее, чем путь к каналу ACL. Поэтому это правило будет соответствовать всему, что начинается в Root.A и имеет как минимум на один элемент больше.
В итоге, это правило позволяет любому из потомков А (но не самому А) присоединяться к А или одному из его потомков (мы предполагаем, что подканалы соответствуют этому правилу).
Если мы не используем ~, то людям из потомков А будет разрешено подниматься (например, из Sub1 в A1 и A, но ни в каких иных путях) или, иными словами, будет разрешено людям входить в канал (любой глубины) из его потомка.
Добавим новое правило в A1:
  • @sub,-1,0 +Связывать
Это позволяет любому, кто находится в главном канале (путь, равный -1 элементу (первый параметр)) или равноценном ему (равный путь (параметр 0)) присоединяться к этому каналу.
Наконец, для демонстрации того, какой может получиться беспорядок, попробуем добавить следующее в B:
  • @~sub,-1,2,2 +Вход
Это позволяет каждому, кто находится на данный момент в потомке Root (родитель B) и имеет длину пути, равную 2 (длина Root.B -1 + 2), присоединяться, поэтому это правило будет удовлетворять кому-либо в A1, но не A и не Sub1.

Пароли каналов или Токен доступа.
Начиная с Mumble 1.2, появилась возможность устанавливать права на канал на основе "токена" или "паролей". Пароли хранятся в списке токенов в клиенте для каждого сервера и клиент использует их при необходимости. С этого момента и далее, мы будем называть пароли к каналам "токеном" для ясности.

Настройка Токена доступа
Токен доступа настраивается созданием специальных групп, которые состоят из символа решетки и токена. Например, токен с названием "password" соответствует группе с названием #password.
Диалоговое окно Редактор Каналов содержит поле "Пароль". Ввод "password" в поле пароля автоматически создает в ACL группу #password, тогда, по умолчанию, будет отказ доступа для @all и разрешение доступа для пользователей группы #password, которая будет состоять из всех пользователей, у которых есть токен в их списке токенов.
Чтобы вручную создать группы токенов, для начала включите Продвинутый Редактор Каналов (Экспертные настройки). Потом выберите канал и пройдите к вкладке ACL. Внизу списка ACL найдите запись @all и выберите окно доступа "Отказ доступа". Теперь нажмите "Добавить" и в окне с полем "Группа" внизу напишите #password и нажмите Enter. Теперь выберите окно доступа "Разрешить Вход" и нажмите ОК для выхода из редактора.

Использование Токена Доступа
Вам нужно добавить токен доступа в ваш клиент посредством выбора "Токен Доступа" в меню "Сервер". Нажмите "Добавить", введите токен (например "password") и кликните "OK". Он должен немедленно вступить в силу, предоставляя вам все привилегии, связанные с этой группой токена. Запомните, что токен является паролем, поэтому относитесь к нему соответствующе; выбирайте такое имя токена, которое является уникальным и которое невозможно угадать.

Значение прав ACL

Изменять ACL
Дает полный контроль над каналом, включая возможность изменять ACL. Эта привилегия подразумевает под собой и все остальные.
Доступ
Без этой привилегии у пользователя нет возможности доступа к каналу или подканалам, независимо от его привилегий в подканалах. Не запрещайте это право, если вы точно не знаете, что Вы делаете; возможно, Вы можете добиться желаемого эффекта, запрещая привилегии доступа какому-либо пользователю.
Вход
Позволяет пользователю присоединяться к каналу. Даже без этой привилегии пользователь может быть перемещен в канал пользователем с привилегией Перемещать.
Говорить
Позволяет пользователю разговаривать на канале. Для выбранных каналов будут слышны только пользователи с включенной в соответствующих каналах привилегией Разговор. Может быть использовано для составления иерархии для выбранных каналов, где все пользователи могут слышать лидера каждой группы, но обычные пользователи не могут распространяться вне их канала. Таким образом, пользователи будут слышать кого-то, разговаривающего с лидером группы, и должны перестать разговаривать на какой-то промежуток времени.
Если пользователь, присоединяющийся к каналу, не имеет включенной привилегию Разговор, то он будет заглушен сервером, и не будет иметь возможности разговаривать до тех пор, пока кто-нибудь не включит ему голос.
Глушить
Позволяет пользователю обезмолвить или "заглушить" другого пользователя. Учтите, что статус "немого" будет следовать за пользователем до того момента, пока он либо не будет возвращен к обычному состоянию, либо не перезайдет на сервер.
Перемещать
Позволяет пользователю перемещать другого пользователя в другой канал или вообще выбросить его с сервера. Тем не менее, если привилегия Вход необходима только для того канала, куда будет перемещен пользователь, то привилегия Перемещение необходима для обоих каналов.
Создавать канал
Позволяет пользователю создать подканал в данном канале. Пользователь будет автоматически добавлен в группу администраторов в новом канале, поэтому сделайте выдаваемые наследуемыми ACL привилегии такими, какими вы хотите.
Создавать временный канал
Позволяет пользователю создать временный подканал в данном канале, который будет автоматически удален в момент, когда его покинет последний участник. Создатель канала будет автоматически перемещен в него сразу же после создания.
Связывать канал
Позволяет пользователю соединить или отсоединить канал для общего общения. Отсоединение требует соответствующей привилегии в одном из двух каналов, в то время как соединение требует наличия привилегии в обоих.
Альтернативный разговор (Шепот)
Позволяет пользователю общаться в канале в том случае, если он зажимает специальную (Alt Push-To-Talk) клавишу (может быть настроено во вкладке Ярлыки в окне опций). Работает так же, как и Говорить в выбранных каналах. Можно установить в настройках клиента на вкладке Оповещения – слышать Шепот только от пользователей, которые добавлены в ваш список друзей.

Примеры

Группа серверов FPS игры
В этом примере, предположим, что у нас есть группа серверов, запускающих FPS игры. Каждая игра имеет две конкурирующие стороны. Каждая сторона, в свою очередь, имеет одну или более бригад. Представим примерно следующую иерархию:
  • Серверы
    • "Название_сервера"
      • Команда 1
        • Пати 1
        • Пати 2
        • ...
      • Команда 2
        • Пати 1
        • ...
      • ...
    • ...
Предположим, что у нас есть небольшой скрипт, связанный с qstat, который направляет пользователя в канале на нужную сторону, а также мы хотим дать им возможность переключаться между каналами бригад и соединяться по желанию. Однако, мы не хотим давать им доступ к каналам другой стороны.
На самом деле, реализация такой задумки очень простая; на канале "Серверы" создайте пустую группу под названием "Игроки". Потом введите следующее:
  1. @all запрещено вход
  2. @~sub,2,2 разрешено вход, разрешено связывать
Первое правило отрицает привилегию на вход для всех пользователей, а второе правило позволяет каждому с иерархией на как минимум 2 элемента ниже "Серверы" перемещаться и соединяться по желанию. На практике, это означает, что если однажды пользователь вошел внутрь "Команды 1", то он может свободно перемещаться внутри неё, но не может переключиться к каналу другой команды или подканалу другого сервера.

Рейд в MMORPG.
Предположим, у нас есть такой набор каналов:
  • Корень
    • Рейд
      • Лекари
      • Танки
      • Наносящие урон
      • Питомцы
Целью является наличие одного лидера для каждой группы, а также несколько человек как рейд лидеры.
Выполним следующую последовательность: В "Рейд" создадим группу "groupleaders". Переместим лидера каждой группы в эту группу. В таком же канале определим "raidleaders" и переместим рейд лидеров в эту группу.
В канале Рейд выполним следующие шаги:
  1. @all запрещено вход, запрещено говорить [Примененное только к данному каналу]
  2. @raidleaders разрешено вход, разрешено говорить, разрешено связывать, разрешено глушить, разрешено выбрасывать [Примененное к данному каналу и подканалам]
  3. @groupleaders разрешено говорить, разрешено связывать [Примененное только к данному каналу]
  4. @groupleaders разрешено связывать, разрешено глушить, разрешено выбрасывать [Примененное только к подканалам]
Первое правило позволяет убедиться в том, что никто не может разговаривать или входить на канал Рейд. Второе условие вводит ограничение на всех в группе рейд лидеров, наделяя их большими разрешениями. Третье правило дает возможность лидерам групп управлять и разговаривать в рейд каналах, а четвертое — дает им права связывать подканалы, а также на избавление от нежелательных пользователей.
Обычные пользователи не будут иметь возможности присоединяться к каналу рейда, но вместе с этим они имеют возможность присоединиться к любому из его подканалов, к какому они захотят. Когда каналы выбраны, любой в выбранном канале будет слышать рейд лидеров и лидеров групп. Однако, рейд лидеры будут слышать только лидеров групп, они не будут слышать обычных пользователей. В этом случае, пользователи могут молчать, когда они слышат поступающие команды (а также слышат команды непосредственно без необходимости повтора от лидера группы), а если они не услышат, то это не будет мешать другим участникам рейда.

Данная статья основана на оригинальной статье https://wiki.mumble.info/wiki/ACL_and_Groups
Мы в Telegramm https://t.me/mumbleru
Пожалуйста, при персональном обращении сразу формулируйте его цель. Спасибо.
Подпишитесь на Новости форума feed/news :rtfm:

Изображение <--- Хочешь себе такой? Читай тут

MONaH-Rasta
Сообщения: 3
Зарегистрирован: 08 сен 2011, 11:54
Откуда: Киев, Украина

Re: ACL Учебник

Сообщение MONaH-Rasta »

Благодарю за несколько устаревшый, но всё ещё актуальный и самое главное, русский мануал!
Пытаясь настроить точно по инструкции выяснил, что в последней версии много чего изменилось, относительно данного мануала. Могу помочь с обновлением до актуальной версии со скриншотами, как положено.

Настроить хочу следующим образом:
  • закрыть канал root для всех;
  • создать канал All Speak, в который юзеров будет подключать автоматически;
  • дать права на создание временных подканалов для @auth;
  • создать канал Games со структурой подканалов, соответствующих структуре моих серверов (например CS-CT, CS-T, HL1, HL2 и т.п.);
  • ограничить права на созданные каналы для @all
Настраивал так:
  1. В корневом канале поставил запрет для группы @all на всё, кроме "перенос" (у меня русс. версия).
  2. Создал субканал All Speak и создал последним (нижним) правило для @all, разрешающее вход и общение.
Решил протестировать и был огорчён. При подключении к серверу меня подключает в root и я не могу войти в созданный All Speak...
Пишет "доступ для вас запрещён", или типа того. Такое впечатление, что родительский запрет на всё, который унаследован с канала root имеет приоритет выше, чам локальное правило, разрешающее вход. Хотя в документации везде описан принцип "сверху-вниз"...

Подскажите хоть куда копать-то?
Jah LOVE, Jah LOVE, protect us!..

B0nuse
Site Admin
Сообщения: 1588
Зарегистрирован: 27 июл 2009, 08:58
Благодарил (а): 40 раз
Поблагодарили: 363 раза
Контактная информация:

Re: ACL Учебник

Сообщение B0nuse »

MONaH-Rasta писал(а):Могу помочь с обновлением до актуальной версии со скриншотами, как положено.
Это было бы замечательно. Можно прямо в данной теме.
MONaH-Rasta писал(а):Пишет "доступ для вас запрещён", или типа того.
Хотя в документации везде описан принцип "сверху-вниз"...
Так и есть. Все действует по принципу "сверху-вниз"
MONaH-Rasta писал(а):В корневом канале поставил запрет для группы @all на всё, кроме "перенос" (у меня русс. версия).
Это и есть Ваша главная ошибка. Есть правило ACL "Доступ" - которое запрещает (или разрешает) какой-либо доступ (Вход и тп) к каналам и подканалам вне зависимости от прав, выставленных в подканалах.
Мы в Telegramm https://t.me/mumbleru
Пожалуйста, при персональном обращении сразу формулируйте его цель. Спасибо.
Подпишитесь на Новости форума feed/news :rtfm:

Изображение <--- Хочешь себе такой? Читай тут

MONaH-Rasta
Сообщения: 3
Зарегистрирован: 08 сен 2011, 11:54
Откуда: Киев, Украина

Re: ACL Учебник

Сообщение MONaH-Rasta »

B0nuse писал(а):
MONaH-Rasta писал(а):В корневом канале поставил запрет для группы @all на всё, кроме "перенос" (у меня русс. версия).
Это и есть Ваша главная ошибка. Есть правило ACL "Доступ" - которое запрещает (или разрешает) какой-либо доступ (Вход и тп) к каналам и подканалам вне зависимости от прав, выставленных в подканалах.
Так что же тогда получается, правило не сработало для канала "Root", ведь подключиться я таки смог? Ведь по такой логике я не должен был иметь права вообще никуда, даже в "Root", но в "Root"-то я подключился...
Мне нужно, чтобы в "Root" вообще никого не пускало, а сразу же подключало в конкретный подканал (в моём случае "All Speak"). Я убрал то правило, что создавал и в принципе, почти всё получилось как я задумал. Кроме одного - в Root таки пускает. Я правильно понимаю, что мне нужно запретить всё в "Root", кроме "Доступ" и тогда всё получится, как я хотел?
Так же меня интересует вопрос - где хранятся правила для @all, которые заданы по дефолту и недоступны для правки даже под SuperUser ?

Донастрою и помогу с обновлением мануала.
Jah LOVE, Jah LOVE, protect us!..

B0nuse
Site Admin
Сообщения: 1588
Зарегистрирован: 27 июл 2009, 08:58
Благодарил (а): 40 раз
Поблагодарили: 363 раза
Контактная информация:

Re: ACL Учебник

Сообщение B0nuse »

Чтобы задать правило для канала по-умолчанию, в который будут попадать все незарегистрированные пользователи при подключении - почитайте про директиву defaultchannel в murmur.ini
Мы в Telegramm https://t.me/mumbleru
Пожалуйста, при персональном обращении сразу формулируйте его цель. Спасибо.
Подпишитесь на Новости форума feed/news :rtfm:

Изображение <--- Хочешь себе такой? Читай тут

B0nuse
Site Admin
Сообщения: 1588
Зарегистрирован: 27 июл 2009, 08:58
Благодарил (а): 40 раз
Поблагодарили: 363 раза
Контактная информация:

Небольшие пояснения

Сообщение B0nuse »

Предположим, Вам необходимо произвести настройку в соответствии со следующими требованиями:

1. Незарегистрированные пользователи не имеют вообще никаких прав, кроме как находится в канале Гостиная.
2. Авторизованные пользователи имеют право писать во все каналы и так же личные сообщения, перемещаться по всем каналам, но не имеют права создавать временные каналы и редактировать или добавлять/изменять существующие.
3. Модераторы имеют такие же права как и авторизованные пользователи, плюс имеют право банить и кикать, но не имеют права регистрировать пользователей.
4. Администраторы имеют полный набор прав и возможность редактировать и изменять ALC список.

Решение:
Структура каналов должна быть такая:

Корень
  • Клан
    • Канал1
    • Канал2
  • Гостиная
В Корневом канале на вкладке Группы, создаете группу moder. Группы @all, @auth, @admin являются группами по-умолчанию.
Добавляете в группы @moder модераторов и @admin администраторов.
Настройки ACL производить строго в соответствии с порядком (- запретить, + разрешить):
Корень
1. @all -вход -говорить -шепот -сообщение
2. @auth +шепот +сообщение
3. @moder +кикать +банить
4. @admin +все права
Клан
1. @auth +вход +говорить
Гостиная
1. @all +вход +говорить

Таким образом,
Для Корневого канала и Подканалов
1. Вы сначала запретили Всем все права (группа @all курсивом уже задала определенные права по-умолчанию)
2. Зарегистрированным разрешили использовать Шепот и писать Сообщение
3. Модераторам к разрешениям добавились права Кикать и Банить (они же тоже зарегистрированные пользователи)
4. Администраторам разрешили все права

Для канала Клан и его подканалов
1. Для Зарегистрированных разрешили Входить и Говорить

Для канала Гостиная
1. Для Всех разрешили Входить и Говорить

Обращаем Ваше внимание!
1. Права могут применяться для текущего канала и подканалов (в зависимости от галочек Контекста на вкладке ACL)
2. Пользователь может находиться сразу в нескольких группах
3. Права вычисляются сверху вниз (т.е. если пользователь находится в нескольких группах, то к нему будут применяться правило из нижней группы в списке)

Например, зарегистрированный пользователь (@auth) находится также в группе @moder, то при правах
@auth -Говорить
@moder +Говорить
пользователю будет разрешено Говорить, а при
@moder +Говорить
@auth -Говорить
Запрещено (и всем зарегистрированным)
Мы в Telegramm https://t.me/mumbleru
Пожалуйста, при персональном обращении сразу формулируйте его цель. Спасибо.
Подпишитесь на Новости форума feed/news :rtfm:

Изображение <--- Хочешь себе такой? Читай тут

dak80
Сообщения: 1
Зарегистрирован: 31 окт 2012, 15:09

Re: ACL Учебник

Сообщение dak80 »

Доброе время суток.

Подскажите...
Мамбл арендуем у вас.
Создана следующая структура в мамбле:

Корень
-- Гостиная
-- Клан
----- А
----- Б

ACL:
Корень
1. @all
2. @all -вход -говорить / -наследовать ACL, -применить к подканалам, +применить к каналу
3. @moder +кикать +банить + вход + говорить / +наследовать ACL, +применить к подканалам, +применить к каналу
4. @admin +все права / -наследовать ACL, +применить к подканалам, +применить к каналу
Гостиная
1. @all
2. @moder
3. @admin
4. @all +вход +говорить / +наследовать и применить
Клан
1. @all
2. @moder
3. @admin
4. @all -вход / +наследовать и применить
5. @auth +вход, +говорить / +наследовать и применить

Все вроде работает как надо, кроме одного.
Новичок (не зарегистрированный) по умолчанию попадает в КОРЕНЬ, а должен в Гостиную.
Можно этого добиться только правилами ACL, без defaultchannel в murmur.ini?

Подробнее:
Новичок (не зарегистрированный) по умолчанию попадает в КОРЕНЬ, но при этом заглушен.
Перейти в Гостиную может. Обратно в Корень вернуться уже не может.
Необходимо чтобы он автоматом попадал в Гостиную.

B0nuse
Site Admin
Сообщения: 1588
Зарегистрирован: 27 июл 2009, 08:58
Благодарил (а): 40 раз
Поблагодарили: 363 раза
Контактная информация:

Re: ACL Учебник

Сообщение B0nuse »

dak80 писал(а):Новичок (не зарегистрированный) по умолчанию попадает в КОРЕНЬ, а должен в Гостиную.
Подключился к Вашему серверу как не зарегистрированный. Попал в Гостиную.
Мы в Telegramm https://t.me/mumbleru
Пожалуйста, при персональном обращении сразу формулируйте его цель. Спасибо.
Подпишитесь на Новости форума feed/news :rtfm:

Изображение <--- Хочешь себе такой? Читай тут

Ответить