Права операторов, whitelist и LuckPerms в Minecraft
Оператор Minecraft получает широкие встроенные права, поэтому выдавать op каждому модератору опасно. Для приватного доступа используйте whitelist, для точечных команд плагинов на Paper или Purpur используйте LuckPerms, а полный операторский уровень оставляйте владельцу и администраторам, которым действительно нужен доступ к управлению сервером.
Инструкция относится к Minecraft Java Edition.
Как выдать и снять права оператора#
В консоли сервера выполните:
op PlayerName
Команда добавит профиль игрока в ops.json. В игровой чат команда вводится с / и требует достаточных прав:
/op PlayerName
Чтобы отозвать операторские права:
deop PlayerName
Используйте точное имя лицензионного профиля. При online-mode=true сервер связывает запись с подтвержденным UUID игрока, а не только с видимым ником.
Не передавайте доступ к консоли вместо выдачи ограниченной роли. Команды из консоли выполняются с полными правами и не ограничиваются обычным уровнем игрока.
Что задает op-permission-level#
Параметр в server.properties определяет уровень, который получат новые операторы через команду op:
op-permission-level=4
Уровни накопительные:
- уровень 1 позволяет обходить защиту точки появления;
- уровень 2 добавляет игровые административные команды, включая смену режима, телепортацию, выдачу предметов и изменение мира;
- уровень 3 добавляет управление игроками и доступом, включая
kick,ban,op,deopиwhitelist; - уровень 4 добавляет команды управления сервером, включая остановку и операции сохранения.
Точный набор доступных команд зависит от версии, ядра и плагинов. Уровень 3 уже позволяет назначать других операторов, поэтому это не безопасная замена отдельной роли модератора.
Изменение op-permission-level задает уровень для последующих вызовов op. Индивидуальные записи хранятся в корневом файле ops.json:
[
{
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "PlayerName",
"level": 3,
"bypassesPlayerLimit": false
}
]
Для ручной смены уровня остановите сервер, создайте резервную копию файла, измените поле level и снова запустите сервер. Не копируйте пример UUID: он должен принадлежать реальному профилю. Поле bypassesPlayerLimit разрешает конкретному оператору войти при заполненном сервере, но сам игрок продолжает учитываться в онлайне.
Общие правила редактирования параметров есть в статье «Настройка server.properties».
Как включить whitelist#
Whitelist ограничивает вход списком разрешенных профилей. Базовая настройка через консоль:
whitelist on
whitelist add PlayerName
whitelist list
Полезные команды управления:
whitelist remove PlayerName
whitelist reload
whitelist off
Список хранится в whitelist.json. Команда whitelist reload нужна после ручного изменения этого файла во время работы сервера. Надежнее использовать команды, чтобы не ошибиться в JSON и UUID.
В server.properties этим соответствуют:
white-list=true
enforce-whitelist=true
white-list включает проверку при подключении. enforce-whitelist заставляет сервер удалить из текущей сессии игроков, которые больше не проходят проверку после перезагрузки списка. Операторы Java Edition могут подключаться при активном whitelist даже без отдельной записи в whitelist.json. Поэтому удаление игрока только из whitelist не закрывает ему доступ, пока он остается в ops.json.
Whitelist не выдает команд и не создает роль. Он отвечает только за вход на сервер.
Почему online-mode должен оставаться включенным#
Для публичного или приватного сервера с лицензионными аккаунтами используйте:
online-mode=true
В этом режиме сервер проверяет профиль игрока через сервисы Minecraft и получает подтвержденный UUID. Whitelist, ops.json и LuckPerms затем применяют права к этой идентичности.
При online-mode=false сервер не подтверждает владельца ника. Злоумышленник может попытаться войти под именем администратора или игрока из whitelist, а UUID офлайн-профиля вычисляется иначе. Из-за этого один лишь whitelist не является надежной защитой, а права, инвентари и данные LuckPerms могут привязаться к другой идентичности после смены режима.
Плагин авторизации снижает часть рисков офлайн-режима, но не делает его эквивалентом проверки аккаунта Mojang/Microsoft и требует отдельной безопасной настройки. LuckPerms также не является системой входа и не защищает ник. Не отключайте online-mode ради устранения обычной ошибки подключения, пока не выяснена ее причина.
Когда нужен LuckPerms#
LuckPerms управляет permission nodes, которые предоставляют Bukkit-плагины и серверное ядро. Он подходит для ролей moderator, builder, vip и других групп с точным набором действий. На Vanilla LuckPerms не работает, поскольку там нет загрузчика Bukkit-плагинов. Для него нужен Paper, Purpur или другое совместимое ядро.
Установите совместимую версию LuckPerms, перезапустите сервер и убедитесь, что плагин загрузился. Пошаговый процесс описан в статье «Как установить плагины на сервер Minecraft».
Правильная модель доступа:
- Группа
defaultполучает только обычные команды игроков. - Модераторская группа наследует базовые права и получает конкретные узлы модерации.
- Администраторская группа получает только необходимые административные узлы.
- Персональные исключения выдаются пользователю, а не добавляются в общую группу.
- После проверки сотрудник снимается с
op, если операторские команды ему не нужны.
Не выдавайте * или широкие узлы вида plugin.* без проверки документации плагина. Такой шаблон часто включает команды удаления данных, перезагрузки, обхода защиты или назначения прав.
Базовые команды LuckPerms#
Создать группу и назначить ее игроку:
lp creategroup moderator
lp user PlayerName parent set moderator
Выдать группе конкретный permission node:
lp group moderator permission set plugin.command.name true
Убрать ранее заданный узел:
lp group moderator permission unset plugin.command.name
Вместо plugin.command.name используйте узел из официальной документации конкретного плагина. Не угадывайте его по названию команды: одна команда может проверять несколько прав, а одинаковые команды разных плагинов используют разные узлы.
Команда parent set заменяет основные наследуемые группы пользователя указанной группой. Если игрок должен сохранить дополнительную роль, сначала проверьте текущую структуру и используйте подходящее действие parent add.
Для сложной схемы удобен официальный веб-редактор:
lp editor
LuckPerms вернет уникальную ссылку. После изменения данных нажмите сохранение в редакторе и выполните сгенерированную команду на сервере. Считайте ссылку чувствительной: не отправляйте ее в общий чат и не публикуйте.
Как найти отсутствующее право#
Если команда запрещена, не выдавайте игроку операторский статус для проверки. Включите журнал проверок LuckPerms с фильтром по игроку или нужному плагину:
lp verbose on PlayerName
Попросите игрока один раз повторить действие, затем остановите сбор:
lp verbose off
Verbose показывает permission node, который реально проверялся. На активном сервере обязательно применяйте фильтр, иначе журнал будет слишком шумным. После исправления проверьте доступ обычным аккаунтом без op: оператор может получать разрешение в обход настроенной группы.
Безопасная схема для нового сервера#
- Оставьте
online-mode=true. - Для закрытого тестирования включите whitelist и добавьте только участников.
- Выдайте
opвладельцу через консоль. - На Paper или Purpur установите LuckPerms и создайте ограниченные группы персонала.
- Проверьте каждую роль аккаунтом без операторских прав.
- Выполните
deopдля сотрудников, которым достаточно LuckPerms. - Перед изменением
ops.json,whitelist.jsonили базы прав создайте бэкап.
Резервное копирование и автоматическое сохранение можно настроить через планировщик задач Minecraft. Если проекту требуется больше памяти или диска из-за набора плагинов и их данных, тариф BazaHost можно изменить отдельно, но повышение тарифа не заменяет корректную модель прав.
Хостинг Minecraft на BazaHost: NVMe, Ryzen 9 и защита от DDoS. Тарифы от 249 ₽/мес.