TeaHost
Rustrustoxideправагруппы5 мин. чтения

Настройка прав и групп Oxide на сервере Rust

Права Oxide в Rust — создание групп, выдача разрешений командой oxide.grant, наследование рангов и разбор ошибок, из-за которых доступ не работает

Кратко

Права Oxide выдаются группам и игрокам: oxide.group add vip создаёт группу, oxide.grant group vip kits.vip выдаёт право, oxide.usergroup add SteamID64 vip добавляет игрока, oxide.group parent связывает группы в цепочку. По умолчанию есть группы default (все игроки) и admin (владельцы сервера), а диагностику начинают с oxide.show user SteamID64.

Права Oxide в Rust — это то, чем вы разделяете обычного игрока, донатера и модератора. Пока прав нет, любой плагин либо доступен всем, либо никому: команда /kit vip либо раздаёт VIP-кит всему серверу, либо не работает даже у вас. Разбираемся, как устроена система разрешений и как настроить её один раз, чтобы потом не лезть в консоль на каждого нового игрока.

Как устроены права Oxide в Rust

Каждый плагин при загрузке регистрирует свои разрешения. Формат всегда одинаковый: имя плагина, точка, название права. Например kits.admin, teleportation.tphome, betterchat.default. Плагин сам решает, что это право открывает — Oxide только хранит, кому оно выдано.

Посмотреть, что зарегистрировал конкретный плагин:

код
oxide.show perms Kits

А полный список всех прав на сервере:

код
oxide.show perms

Список бывает на несколько экранов, поэтому удобнее смотреть его не в игровой консоли, а через RCON — там текст можно скопировать. Как подключиться, описано в заметке про подключение к серверу по RCON.

Право выдаётся либо конкретному игроку, либо группе. На практике поштучная выдача нужна редко — почти всё делается через группы.

Группы по умолчанию

Сразу после установки Oxide на сервере есть две группы:

  • default — в неё автоматически попадает каждый подключившийся игрок, вручную добавлять никого не нужно
  • admin — в неё Oxide автоматически кладёт игроков, которых сервер признаёт админами через ownerid

Имена групп по умолчанию меняются в oxide.config.json. Официальное описание системы — в документации Oxide по правам.

Отсюда простое правило: базовые права, которые должны быть у всех (телепорт домой, /info, чат-префикс новичка), вешаются на default. Всё, что связано с администрированием, — на admin. Если вы ещё не выдавали себе админку, это отдельная тема, разобранная в статье про добавление админа на Rust-сервер.

Создание своих групп

Стандартный набор для сервера с донатом — три-четыре группы плюс модераторская:

код
oxide.group add vip "VIP" 10
oxide.group add premium "Premium" 20
oxide.group add moderator "Модератор" 50

Второй аргумент — отображаемое название (title), третий — ранг. Ранг сам по себе ничего не решает: его читают плагины вроде BetterChat, чтобы понять, чей префикс показывать, если игрок состоит сразу в нескольких группах. Больше число — выше приоритет.

Удалить группу:

код
oxide.group remove premium

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

Выдача прав группе и игроку

Основные команды — oxide.grant и oxide.revoke:

код
oxide.grant group vip kits.vip
oxide.grant group vip teleportation.tphome
oxide.revoke group vip kits.vip

Для отдельного игрока вместо group пишем user и указываем SteamID64 или ник (SteamID надёжнее — ник игрок может сменить):

код
oxide.grant user 76561198000000000 kits.admin
oxide.revoke user 76561198000000000 kits.admin

Oxide понимает шаблон со звёздочкой — удобно, когда плагин регистрирует десяток прав и все они нужны модератору:

код
oxide.grant group moderator playeradministration.*

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

Добавление игроков в группы

код
oxide.usergroup add 76561198000000000 vip
oxide.usergroup remove 76561198000000000 vip

Игрок необязательно должен быть онлайн — Oxide запомнит SteamID и применит права при следующем заходе. Проверить, что получилось:

код
oxide.show user 76561198000000000

Команда выведет и группы игрока, и персонально выданные права. Если человек жалуется, что «команда не работает», начинать диагностику надо именно отсюда.

Наследование групп

Чтобы не выдавать одни и те же права трижды, группы связывают в цепочку:

код
oxide.group parent premium vip

Теперь Premium получает всё, что есть у VIP, плюс своё. Меняете что-то в VIP — изменение автоматически доезжает до Premium. Цепочку можно продолжить: moderator наследует premium, тот — vip, а тот — default.

Единственное, за чем стоит следить: циклов быть не должно. Если A наследует B, а B — A, Oxide найдёт цикл, удалит такую связь и напишет предупреждение в лог — цепочка, на которую вы рассчитывали, перестанет работать.

Шпаргалка по командам

КомандаЧто делает
oxide.show permsВсе зарегистрированные права
oxide.show groupsСписок групп
oxide.show group vipУчастники и права группы
oxide.show user 76561198000000000Группы и личные права игрока
oxide.group add vip "VIP" 10Создать группу с названием и рангом
oxide.group parent premium vipPremium наследует права VIP
oxide.grant group vip kits.vipВыдать право группе
oxide.revoke group vip kits.vipЗабрать право у группы
oxide.usergroup add 76561198000000000 vipДобавить игрока в группу

У всех команд есть короткий префикс o. — например, o.grant.

Где всё это хранится

Права лежат в двух файлах:

код
oxide/data/oxide.groups.data
oxide/data/oxide.users.data

Это не текстовые файлы: Oxide хранит их в бинарном формате ProtoBuf, поэтому руками они не правятся. Для просмотра или переноса есть команда oxide.export — она выгружает группы и пользователей в JSON. Чтобы перенести права на другой сервер целиком, остановите оба сервера и скопируйте эти два файла через файловый менеджер панели или SFTP.

Оба файла обязательно должны попадать в бэкап — восстанавливать вручную список из двухсот донатеров вы не захотите.

Частые вопросы

Почему право выдано, а команда всё равно недоступна?

Сначала проверьте, что плагин действительно загружен: oxide.show perms ИмяПлагина на выгруженном плагине вернёт пустоту. Второе — точность написания права, Oxide не подсказывает опечатки и молча создаёт запись о несуществующем разрешении. Третье — некоторые плагины кешируют права игрока до переподключения, тогда помогает /reload плагина или релог игрока.

Почему права слетели после обновления плагина?

Так бывает, если автор переименовал разрешение (было shop.use, стало shop.buy). Файл oxide.groups.data при этом не трогается — там остаётся старое право, которого больше нет. Сверьтесь со списком oxide.show perms после каждого крупного обновления плагинов.

Работают ли эти команды в Carbon?

Да, Carbon сохраняет совместимость: те же grant, revoke, usergroup, только с префиксом c. вместо oxide. (oxide. тоже обычно понимается). Файлы данных лежат в carbon/data/.

Коротко

Схема, которая работает почти на любом сервере: базовые права на default, донатные группы выстроены цепочкой через parent, модераторские права — отдельной группой, всё выдаётся командами oxide.grant group, а oxide.show user остаётся первой командой при разборе жалоб. Дальше можно переходить к самим плагинам — какие ставить и откуда брать, разобрано в заметке про плагины Oxide/uMod.

Если сервер ещё не поднят и хочется сразу панель с готовым Oxide, а не сборку с нуля — тарифы под Rust тут.