TeaHost
панельбезопасность5 мин. чтения

Доступ к серверу для команды: субаккаунты

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

Кратко

Доступ к серверу для команды выдают субаккаунтами: во вкладке Users панели Pterodactyl пригласите человека по email и отметьте только нужные права. Модератору обычно хватает игровых прав и просмотра консоли, разработчику — файлов, SFTP, консоли и перезапуска; биллинг и удаление сервера остаются у владельца. При уходе человека удалите субаккаунт, смените RCON-пароль и проверьте файлы.

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

Почему общий пароль — плохая идея

Аргументы против него не абстрактные, а очень практические.

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

Нет градаций. Модератору нужно только банить и читать чат, а с общим паролем он получает и файловый менеджер, и биллинг, и кнопку удаления сервера. Один неверный клик — и вечер испорчен всем.

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

Пароль утекает. Он пересылается в личке, сохраняется в браузерах, попадает в скриншоты. Один общий секрет на пятерых утечёт с вероятностью, близкой к единице.

Как выдать доступ к серверу для команды

В панели Pterodactyl, на которой работает TeaHost, субаккаунты живут во вкладке сервера Users. Схема стандартная: вы приглашаете человека по email, он создаёт свой пароль, вы отмечаете галочками, что ему можно.

  1. Откройте раздел управления пользователями сервера.
  2. Добавьте пользователя, указав его почту. Именно его, не общую — это его личная учётка.
  3. Отметьте разрешения по принципу минимума: только то, без чего человек не сделает свою работу.
  4. Сохраните. Приглашённый получит письмо и заведёт себе пароль сам — вы его не знаете и знать не должны.
  5. Попросите включить двухфакторную аутентификацию, если панель её поддерживает.

Субаккаунт даёт доступ только к тому серверу, где вы его создали. Биллинг, оплата и удаление сервера остаются за владельцем — и это правильно.

Какие права кому

Разложим по типичным ролям:

ПравоМодераторРазработчикБилдерСовладелец
Просмотр консолидаданетда
Команды в консольпо ситуации, часто хватает игровых правданетда
Файлы и SFTPнетдада, с оглядкойда
Запуск, остановка, перезапускнетданетда
Создание бэкаповнетданетда
Удаление бэкаповнетнет, оставьте себенетпо договорённости
Порты, расписания, настройки запусканетнетнетда
Биллинг и удаление серверанетнетнетнет, только владелец

Полный доступ к файлам равен полному контролю над сервером — помните об этом, выдавая его билдеру.

Общий принцип: права выдаются под задачу, а не «на всякий случай». Расширить набор можно за минуту, когда понадобится.

Панель и игра — это разные права

Частая путаница. Доступ в панель и админка в игре — два независимых механизма.

Модератору, который банит нарушителей в чате, панель обычно вообще не нужна: ему нужны игровые права. В Minecraft это группы LuckPerms, в Rust — записи в users.cfg и права Oxide, в CS2 — конфигурация админов плагина. Разграничение внутри игры описано в статьях про настройку LuckPerms и права операторов, а для Rust — в материале про админ-команды.

Практическое правило: сначала пробуйте решить задачу игровыми правами. Панель выдавайте только тем, кому реально нужно трогать файлы и процесс сервера.

RCON и SFTP: отдельная история

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

RCON — это консоль с максимальными правами и одним общим паролем на всех. Персональных RCON-доступов не бывает. Если вы выдали пароль трём людям, вы фактически выдали им права владельца консоли без всякого разграничения и следов в логах. Держите RCON для ботов и скриптов, а людям давайте консоль через субаккаунт панели; подробности — в статье про подключение по RCON.

SFTP в большинстве панелей привязан к учётке пользователя: субаккаунт с правом на файлы получает и свой SFTP-логин. Это удобно и безопасно. А вот если панель выдаёт один общий SFTP-доступ — обращайтесь с ним как с паролем владельца. Настройка клиентов описана в статье про подключение по SFTP.

Когда человек уходит

Момент, который откладывают, а потом забывают. Порядок на пятнадцать минут:

  1. Удалите субаккаунт в панели — не отключите, а удалите.
  2. Смените пароль RCON, если человек его знал.
  3. Снимите игровые права: группу в LuckPerms, запись в users.cfg, роль в Discord.
  4. Проверьте файлы на предмет сюрпризов: посторонние jar в plugins/, изменённые скрипты запуска, новые задачи в планировщике.
  5. Просмотрите логи панели за последние дни — не было ли массового скачивания или удаления.

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

Гигиена доступов

Несколько привычек, которые стоят недорого:

  • Раз в квартал пересматривайте список пользователей: половина обычно уже неактуальна.
  • Не заводите учётки «на общую почту команды» — это тот же общий пароль, только сбоку.
  • Требуйте двухфакторную аутентификацию хотя бы у тех, кто имеет доступ к файлам.
  • Владельческий аккаунт держите только у себя и не используйте его для повседневной работы, если есть возможность завести субаккаунт себе же.
  • Ограничивайте право удалять бэкапы — это последняя линия обороны, и она должна быть только у вас.

Раздайте роли аккуратно один раз, и команда будет работать быстрее, а вы — спокойнее спать. Тарифы с панелью Pterodactyl — посмотреть можно тут.