Pterohost docs

Права и группы TeamSpeak 3: серверные и канальные группы

Как устроены права TeamSpeak 3: серверные и канальные группы, типы прав b_ и i_, флаги skip и negate, наследование, Advanced и Simplified режимы, рецепты типовых настроек.

Система прав TeamSpeak 3 - одна из самых гибких среди голосовых серверов, но именно эта гибкость и путает новичков: два вида групп, два префикса типов прав, два флага-модификатора и порядок наследования, который не всегда очевиден с первого взгляда. Разобравшись один раз, вы сможете точно настроить, кто может создавать каналы, кикать пользователей или менять настройки сервера - без риска случайно выдать лишнего. В этой статье разбираем структуру прав TeamSpeak 3 от групп до конкретных значений и приводим готовые рецепты для типовых задач администратора.

Серверные и канальные группы

В TeamSpeak 3 право почти никогда не выдаётся напрямую клиенту - оно приходит через группу. Групп два принципиально разных вида, и путать их - частая ошибка новых администраторов.

Серверные группы (Server Groups)

Действуют на клиента везде на сервере, независимо от того, в каком канале он находится. Клиент может состоять сразу в нескольких серверных группах одновременно (в отличие от канальных, где на канал - одна группа). Стандартный набор из коробки:

ГруппаНазначение
GuestБазовая группа для всех новых подключений, минимум прав
NormalОбычный зарегистрированный пользователь
Server AdminПолные административные права: настройки сервера, управление группами, банами, каналами

Кастомные серверные группы (модератор, VIP, доверенный участник) создаются поверх этих трёх и получают только те права, которые вы выдадите явно или унаследуете от шаблона.

Канальные группы (Channel Groups)

Действуют только внутри конкретного канала, к которому привязаны. Один и тот же клиент может быть Channel Admin в своём личном канале и просто Guest в остальных - в отличие от серверных групп, для каждого канала клиент состоит ровно в одной канальной группе. Стандартный набор:

ГруппаНазначение
GuestБазовое поведение в модерируемом канале, нужно запрашивать право говорить
VoiceМожет говорить в модерируемом канале
NormalОбычное поведение без модерации разговора
OperatorМожет выдавать/забирать группу Voice другим, говорить в модерируемых каналах, но не может менять сам канал
Channel AdminПолные права на канал: переименование, удаление, управление правами других в этом канале

Channel Admin автоматически выдаётся создателю канала (если такое право у него есть) - это единственный случай, когда канальная группа назначается неявно, без ручного действия администратора сервера.

Типы прав: b_ и i_

Каждое конкретное право в TeamSpeak 3 имеет префикс, показывающий его тип значения.

b_ - булевы права

Имеют только два состояния: разрешено (1) или нет (0). Большинство прав в системе - булевы: возможность что-то делать без градаций.

ПравоЧто разрешает
b_channel_create_permanentСоздавать постоянные каналы
b_channel_delete_permanentУдалять постоянные каналы
b_channel_modify_nameПереименовывать канал
b_client_ban_createДобавлять бан
b_client_kick_from_channelКикать клиента из канала
b_virtualserver_modify_settingsМенять глобальные настройки виртуального сервера

i_ - целочисленные права

Задают числовой лимит или уровень власти (power). Внутри этой категории отдельно выделяют пары «власть / требуемая власть» (power / needed power) - механизм сравнения уровней между двумя клиентами.

ПравоЧто задаёт
i_client_kick_from_server_powerУровень власти для кика с сервера
i_client_kick_from_channel_powerУровень власти для кика из канала
i_client_ban_powerУровень власти для выдачи банов
i_client_max_clones_uidМаксимум одновременных подключений с одним идентификатором клиента
i_ft_file_upload_power / i_ft_file_download_powerУровень власти для загрузки/скачивания файлов

Важный нюанс про третий префикс. В некоторых материалах упоминается отдельный тип прав f_ для файловых операций - на практике в текущей системе прав TeamSpeak 3 такого префикса нет: права передачи файлов используют обычный целочисленный префикс i_ft_ (file transfer), а не отдельную категорию. Официальная система различает только b_ (булевы) и i_ (целочисленные, включая power-пары).

Механизм Power / Needed Power

Действие с парой power/needed power проходит, только если у инициатора значение *_power больше или равно значению *_needed_power у цели. Например, чтобы кикнуть клиента с сервера, у кикающего i_client_kick_from_server_power должен быть не меньше, чем i_client_needed_kick_from_server_power у кикаемого. Это позволяет выстроить иерархию модераторов: младший модератор с power 40 не сможет кикнуть старшего администратора с needed power 60, даже если формально у обоих есть булево право на кик.

Флаги skip и negate

У каждого права в серверной группе может быть выставлен один или оба модификатора.

  • negate - инвертирует итоговое значение права после того, как оно вычислено по всем источникам. Используется, чтобы явно запретить что-то конкретному клиенту или группе поверх разрешения, унаследованного откуда-то ещё.
  • skip - запрещает канальным группам (уровень наследования 4) переопределять это право, полученное через серверную группу. Право «замораживается» на уровне сервера и не может быть ослаблено или усилено настройками конкретного канала.

Оба флага - тонкий инструмент для нестандартных сценариев (например, «этому конкретному пользователю запретить создавать каналы, несмотря на то что его группа это разрешает») и в обычной настройке кланового сервера почти не нужны - большинству достаточно базовых значений прав в группах.

Порядок наследования прав

Итоговое право клиента в конкретный момент складывается из нескольких слоёв, которые накладываются друг на друга по приоритету (от низшего к высшему, где более специфичный уровень обычно побеждает, если не помешал флаг skip):

  1. Права серверной группы, в которой состоит клиент.
  2. Права, выданные клиенту напрямую на сервере (client-specific override).
  3. Права канальной группы в текущем канале.
  4. Права, выданные клиенту напрямую в конкретном канале.

Именно поэтому один и тот же человек ведёт себя по-разному в разных каналах: серверная группа даёт базовый уровень доступа везде, а канальная группа и точечные права канала могут его локально расширить или сузить.

Pterohost - аренда голосового сервера TeamSpeak 3 с уже настроенными группами по умолчанию и панелью для тонкой правки прав. Промокод 4START даёт -20% на первый заказ. Арендовать сервер TeamSpeak 3

Advanced и Simplified режимы

В настройках прав клиент TeamSpeak 3 предлагает два интерфейса работы с правами.

РежимДля когоОсобенности
Simplified permissionsНовичкам, для быстрой настройки одной группыГотовые уровни доступа (пресеты), без ручного ввода конкретных прав, работает с одной группой за раз
Advanced permissionsОпытным администраторамПолная таблица всех прав по всем группам одновременно, ручной ввод значений, доступ к флагам skip/negate

Advanced-режим нужен, если вы настраиваете нестандартную иерархию (например, три уровня модераторов с разными правами на бан) или работаете через ServerQuery, где всё равно приходится оперировать точными именами прав вроде b_client_kick_from_server. Подробнее про сам протокол ServerQuery и его команды - в статье ServerQuery: подключение и команды, где показано, как выдавать права скриптом вместо ручного клика в интерфейсе.

Типовые рецепты настройки прав

Выдать пользователю права администратора

Через клиент: правый клик по пользователю в списке -> Права сервера -> отметить группу Server Admin. Через ServerQuery:

servergroupaddclient sgid=6 cldbid=25

где sgid - идентификатор группы Server Admin (обычно 6 в свежеустановленном сервере, но лучше проверить командой servergrouplist), а cldbid - идентификатор клиента в базе данных сервера (узнаётся через clientdblist или clientgetdbidfromuid).

Запретить обычным пользователям создавать каналы

В серверной группе Normal снять булево право:

b_channel_create_permanent = 0
b_channel_create_temporary = 0
b_channel_create_semi_permanent = 0

Оставить создание каналов только для выделенной группы «Проверенный участник» или выше.

Выдать права модератора без полного админства

Создать отдельную серверную группу «Модератор» на основе Normal и добавить точечно:

b_client_kick_from_channel = 1
b_client_kick_from_server = 1
b_client_ban_create = 1
b_client_mute_clients = 1
i_client_kick_from_server_power = 50
i_client_kick_from_channel_power = 50
i_client_ban_power = 50

Это даёт возможность модерировать разговоры и банить нарушителей, но не открывает доступ к b_virtualserver_modify_settings и другим системным правам, которые остаются только у Server Admin.

Запретить конкретному пользователю говорить в канале, несмотря на его группу

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

Pterohost - сервер TeamSpeak 3 со стандартным набором групп из коробки, готовым под правку под ваш клан. Промокод 4START даёт -20% на первый заказ. Заказать хостинг TeamSpeak 3

Часто задаваемые вопросы

Чем серверная группа отличается от канальной в TeamSpeak 3?

Серверная группа действует на клиента везде на сервере - в любом канале, при любых действиях. Канальная группа действует только внутри конкретного канала: например, один и тот же человек может быть Operator в своём канале и просто Guest в остальных.

Что делают флаги skip и negate у прав TeamSpeak 3?

Negate инвертирует итоговое значение права после сложения всех источников - используется, чтобы явно запретить что-то конкретному клиенту поверх разрешающей группы. Skip запрещает канальным группам (уровень 4) переопределять это право, полученное через серверную группу - право остаётся фиксированным независимо от канала.

В чём разница между b_ и i_ правами в TeamSpeak 3?

Права с префиксом b_ - булевы, у них только два состояния: разрешено или нет. Права с префиксом i_ - целочисленные, задают лимит или уровень власти (power), например i_client_kick_from_server_power. Отдельного префикса f_ в текущей системе прав TeamSpeak 3 нет: права передачи файлов используют префикс i_ft_.

Как быстро выдать пользователю права администратора на TeamSpeak 3 сервере?

Проще всего добавить клиента в серверную группу Server Admin через ServerQuery-команду servergroupaddclient sgid=<id группы> cldbid=<id клиента в базе> или через клиент TeamSpeak: правый клик по пользователю - Права сервера - Server Admin. Группа Server Admin по умолчанию уже содержит весь набор административных прав.

Что такое Advanced и Simplified режимы в настройках прав TeamSpeak 3?

Simplified permissions - упрощённый режим для одной серверной группы за раз с готовыми пресетами уровней доступа, подходит новичкам. Advanced permissions открывает полную таблицу всех прав по всем группам сразу, со значениями, флагами skip и negate - нужен для тонкой настройки и нестандартных сценариев.