Справочная система CleanVoice

Teamspeak 3 — Система привилегий — Иерархия уровней привилегий

Иерархия уровней привилегий

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

  • Уровень 1: Группы сервера
  • Уровень 2: Привилегии пользователей
  • Уровень 3: Привилегии каналов
  • Уровень 4: Группы канала
  • Уровень 5: Привилегии пользователей на каналах
Вы состоите в группе сервера "Guest" (Уровень 1), у которой привилегия b_channel_modify_name = false. Но вы так же состоите в группе "Channel Admin" (Уровень 4), у которой b_channel_modify_name = true.
Поскольку группа канала выше по уровню, чем группа сервера, то вы *сможете* редактировать имя канала (только своего канала, где вы являетесь админом, но не других каналов).

Далее детально описан каждый из слоев с их особенностями.

Уровень 1: Группы сервера

Каждый пользователь состоит в одной или нескольких группах сервера. В каждой группе сервера установлены привилегии, которые вы автоматически получаете, когда входите в группу.

Так как вы можете состоять в нескольких группых сервера одновременно, а одни и те же привилегии могут быть назначены в любой из этих групп, то необходимо понимать результат такого смешения привилегий на Уровне 1.

Основная логика выдачи прав на одном уровне состоит в использовании привилегий с наивысшим значением. У каждой привилегии группы сервера может быть установлен флажок Negate или Skip, которые влияют на способ выбора привилегии в этом случае. Они описаны далее.

Каждый пользователь всегда состоит хотя бы в одной группе сервера. На сервере всегда есть специальная группа, которая назначается всем новым пользователям сервера. Когда новый пользователь впервые заходит на сервер, он автоматически добавляется в эту группу сервера (изначально это группа Guest, но её можно переназначить в Параметрах виртуального сервера).

Предположим, вы состоите в трех группах сервера: Server Admin, Clan Leader и War Organizer.
Для группы Server Admin привилегия i_client_kick_power = 50. Для Clan Leader i_client_kick_power = 100, а для War Organizer эта привилегия не установлена.
Результатом на Уровне 1 для вас будет i_client_kick_power = 100, поскольку это наивысшее значение во всех ваших группах.

Иногда вам может понадобиться создать группу сервера с отрицательным эффектом для пользователей, которые в ней будут состоять.
Например, группа "Sticky", пользователям которой запрещено перемещаться по каналам. Или группа "Silent", в которой удалены привилегии для возможности разговаривать. Чтобы так сделать, установите для привилегии флажок Negate.
Если вы состоите в нескольких группах, и в одной из них у привилегии установлен флажок Negate, то вы не получите наивысшее значение, как вы обычном случае, а напротив — получите самое низкое.

Вы создали группу с названием "Sticky". Она содержит одну привилегию i_channel_join_power = -1 с установленным флажком Negate. Теперь, если вы добавите любого пользователя в эту группу, он больше не сможет перемещаться по каналам.
И это будет работать даже в том случае, если пользователь состоит в другой группе, в которой, скажем i_channel_join_power = 100. Флажок Negate гарантирует, что будет использоваться самое низшее значение привилегии. В нашем случае её значение будет "-1" (либо ещё ниже, если пользователь состоит в других группах, где она ниже).
Причина, по которой в нашем случае пользователь не может перемещаться по каналам, в том, что по-умолчанию у всех каналов ограничительная привилегия на вход i_channel_needed_join_power отключена (а значит = 0). И поскольку значение -1 меньше 0, то пользователь не может войти ни на один канал.

Так как группы сервера — это самый первый Уровень, то все привилегии этого слоя могут быть переопределены на верхних уровнях.
Но иногда для Групп канала (Уровень 4) желательно запретить переопределять привилегии, которые получаны в группе сервера. Для этого у привилегий существует флажок Skip.
Если в Группе сервера (Уровень 4) или в Привилегиях пользователя (Уровень 2) у привилегии установлен флажок Skip, эта привилегия не будет переопределена на любом из верхних уровней: Группы каналов (Уровень 4) или Привилегии канала (Уровень 3)

Как администратор сервера вы не хотите, чтобы установленные у вас группы канала запрещали ваши административные привилегии. Добавлением флажка Skip для всех ваших привилегий в группе Server Admin вы сможете гарантировать, что ни одна из групп канала не повлияет на ваши способности к администрированию.
Так же, есть отдельная привилегия b_client_skip_channelgroup_permission, которая игнорирует сразу все привилегии каналов (Уровни 3 и 4).

Уровень 2: Привилегии пользователей

Эти привилегии устанавливаются непосредственного на пользователя. Как и описано выше, они переопределяют привилегии из Уровня 1.
У привилегий этого уровня, как и у предыдущего, есть возможность установить флажок Skip, который гарантирует, что привилегия не будет переопределена на любом из верхних уровней.

Вы состоите в группе сервера Guest, у которой i_client_kick_power = 0. Вы хотите, чтобы у вас было право на кик других пользователей, даже без добавления себя в группу админов (или в любую другую). В случае, если кто-то снимет у вас все группы, и вам нужно будет срочно принять меры, чтобы наказать негодяя.
Для этого вы устанавливаете на себя i_client_kick_power = 100. Поскольку Привилегии пользователей находятся на Уровне 2, привилегия на кик будет переопределена, и вы сможете воспользоваться ею, не находясь ни в одной из групп сервера.
Установка привилегий напрямую на пользователя часто используется негодяями для взлома сервера, когда не находясь ни в одной из групп сервера у них имеются полные права администратора. При этом они могут создать несколько аккаунтов с такими "скрытыми" привилегиями, которые возможно отследить только через лог сервера.
По этой причине рекомендуем никому не выдавать доступ к группе Server Admin (либо исключительно доверенным лицам). Для остальных "модераторов" желательно создать отдельную группу на основе Normal, и назначить на неё только необходимые привилегии.

Уровень 3: Привилегии каналов

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

Для ограничения возможности разговаривать установите на канал i_client_needed_talk_power, и тогда только пользователи с большей или равной привилегией i_client_talk_power смогут разговаривать на этом канале.
Это можно использовать для каналов, на которые должны входить только некоторые пользователи (через i_channel_needed_join_power), или которые могут просматриваться только некоторыми пользователями (через i_channel_needed_subscribe_power).

Все привилегии каналов, которые логически назначены на канал, действуют только в пределах этого канала.
Например, если на определенном канале привилегия i_client_kick_power дает вам право на кик, то вы сможете кикать тользователей только в пределах этого канала, но не в других каналах.

Все привилегии каналов, которые логически назначены на канал, действуют только в пределах этого канала.

Несомненно, существуют привилегии, которые не относятся к области видимости каналов, например b_virtualserver_stop — они будут работать точно так же, как если были бы назначены, например, на Группу сервера.

Уровень 4: Группы канала

Каждый пользователь состоит по крайней мере в одной из групп канала. Когда пользователь входит в новый канал, он автоматически удаляется из групп предыдущего канала. Все привилегии, которые вы получаете через группу канала могут использоваться только в пределах канала, в котором вы сейчас находитесь.
Если вы состоите в группе канала, в которой установлена привилегия b_channel_modify_password, то вы сможете редактировать пароль только того канала, где сейчас находитесь, и на котором у вас есть эта группа.
Существуют две специальные группы канала, которые задаются в Параметрах виртуального сервера:
- "Группа канала", которая назначается всем пользователям при первом входе на канал (по-умолчанию Guest).
- "Группа администратора канала", которая назначается на пользователя, создавшего канал (по-умолчанию Channel Admin).

Уровень 5: Привилегии пользователя на канале

Эти привилегии похожи на комбинацию Привилегий пользователя (Уровень 2) и Привилегий канала (Уровень 3). Другими словами, это аналогично Привилегиям пользователя, но действует только на определенном канале.
Они назначаются на пользователя и на канал одновременно; если выполняется условие, когда определенный клиент находится на определенном канале — только тогда эти привилегии будут действовать.

Это можно использовать для установки приоритетного разговора на пользователя (b_client_is_priority_speaker). Например, вы можете назначить себе статус приоритета разговора на одном или нескольких каналах.




Большинство сценариев настройки сервера покрываются использованием Групп сервера и Групп канала. Остальные уровни являются расширенными дополнениями, которые рекомендуется использовать только при хорошем понимании системы привилегий.