Руководство
Discord-бот без прав администратора: как настроить безопасно
Почти каждое руководство говорит одно и то же: поставь галочку «Администратор», и готово. Удобно, и именно поэтому один украденный токен бота способен опустошить весь сервер. Здесь написано, что ты отдаёшь на самом деле, в каком порядке и что проверить потом.
Без прав администратора. Настройка в веб-панели.
Почему это ломается
Администратор это не одно право среди прочих, а рубильник, который отключает все остальные проверки. Бот с этой галочкой читает любой приватный канал, в том числе тот, где команда обсуждает участников, и никакая настройка канала его не остановит. Заметить это невозможно, потому что всё работает с первого раза. Опасен обычно не тот, кто держит бота, а его токен доступа: кто до него доберётся, унаследует ровно эту власть. К этому добавляется второй, более тихий ущерб. Пока разрешено всё, ты никогда не узнаешь, какое право на самом деле нужно функции; в день уборки половина отваливается, и никто не может сказать почему. А в журнале аудита за каждым действием стоит одна и та же всесильная роль: там оплошность выглядит как нападение, а нападение выглядит как оплошность.
Что решить заранее
До того как нажать на приглашение, реши три вопроса. Первый: какие задачи должен взять на себя бот? Каждая держится на конкретном праве: выдавать роли, убирать сообщения, отправлять в тайм-аут, писать в ветках. Чего вы не планируете, того и не нужно. Второй: где стоит роль бота? Её положение весит больше любой галочки: она должна быть выше всего, что бот выдаёт или модерирует, и ниже ваших руководящих ролей. Третий: кому позволено пригласить бота повторно? Права ставятся только при входе, поэтому новое приглашение остаётся единственным путём, если позже одного не хватает. Наше приглашение запрашивает 1633027484887: двадцать два отдельных права, бита Администратора среди них нет. Намеренно отсутствуют управление сервером, упоминание @everyone и вход в голосовые каналы.
Шаг за шагом
- Открой приглашение и прочитай список, который Discord показывает до подтверждения: именно этот список и есть настоящая договорённость, а не страница, приведшая тебя сюда.
- Затем в настройках сервера в разделе «Роли» подними роль бота выше каждой роли, которую он должен выдавать или модерировать, и оставь её ниже вашей руководящей роли.
- Пройди по каналам, где он будет работать, и поищи красные минусы: исключение, поставленное на канале, перебивает право, идущее от роли.
- Проверь всё один раз со второго аккаунта в тестовом канале (выдай роль, поставь тайм-аут, опубликуй карточку), прежде чем полагаться на это в основном канале.
- Модули настрой после этого в панели на its-netting.com; помощник сообщит там, если выбранная роль стоит выше роли бота или если писать в выбранный канал ему нельзя.
Ошибки, которые делают почти все
Самая частая ошибка это галочка «Администратор», поставленная только на время настройки, к которой потом никто не возвращается. Вторая ошибка это забытая иерархия: бот с правом бана, чья роль стоит слишком низко, не забанит никого, кто сидит выше него. Выглядит это как поломка, а на деле это место в списке. Столь же часто упускают, что приглашение задаёт права исключительно в момент входа. Если право добавили позже, действующий сервер не получит его задним числом: когда функция после обновления сообщает о нехватке прав, причина почти всегда в этом. Добавь сюда две путаницы: права участника и права бота это две разные проверки, а сводка по роли ничего не говорит о том, что от неё остаётся внутри отдельного канала.
Частые вопросы
Нет. У нас весь набор функций держится на двадцати двух отдельных правах, бит Администратора не выставлен. Если бот всё же его требует, честный вопрос звучит так: для какой именно функции? Отсутствие ответа и есть ответ.
Потому что сверху действует иерархия ролей. Высшая роль бота должна стоять выше высшей роли того, кого банят, иначе Discord откажет. Владельца сервера это не касается никогда, как бы ни стояли роли.
Нет, выгонять не нужно, и настройки в любом случае не теряются. Ты либо выдаёшь недостающее право роли бота вручную, либо ещё раз открываешь приглашение для того же сервера. И то и другое занимает минуту.
В настройках сервера видна основа на его роли, а в отдельном канале видна истина. Открой права канала и найди там роль бота: что канал запрещает, того не вернёт никакая щедрая роль. Именно поэтому стоит смотреть в оба экрана.
Нужен ли Discord-боту Администратор, чтобы всё работало?
Нет. У нас весь набор функций держится на двадцати двух отдельных правах, бит Администратора не выставлен. Если бот всё же его требует, честный вопрос звучит так: для какой именно функции? Отсутствие ответа и есть ответ.
Почему бот не может забанить, хотя право выдано?
Потому что сверху действует иерархия ролей. Высшая роль бота должна стоять выше высшей роли того, кого банят, иначе Discord откажет. Владельца сервера это не касается никогда, как бы ни стояли роли.
Боту не хватает права, но он уже на сервере. Надо ли его выгонять?
Нет, выгонять не нужно, и настройки в любом случае не теряются. Ты либо выдаёшь недостающее право роли бота вручную, либо ещё раз открываешь приглашение для того же сервера. И то и другое занимает минуту.
Как увидеть, какие права у бота на самом деле?
В настройках сервера видна основа на его роли, а в отдельном канале видна истина. Открой права канала и найди там роль бота: что канал запрещает, того не вернёт никакая щедрая роль. Именно поэтому стоит смотреть в оба экрана.