Права и группы 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):
- Права серверной группы, в которой состоит клиент.
- Права, выданные клиенту напрямую на сервере (client-specific override).
- Права канальной группы в текущем канале.
- Права, выданные клиенту напрямую в конкретном канале.
Именно поэтому один и тот же человек ведёт себя по-разному в разных каналах: серверная группа даёт базовый уровень доступа везде, а канальная группа и точечные права канала могут его локально расширить или сузить.
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 - нужен для тонкой настройки и нестандартных сценариев.