Давал админку WordPress знакомым, пока не случился форс-мажор
Ох, эта история до сих пор заставляет меня морщиться. Когда я дал доступ к админке WordPress знакомому, чтобы он поправил статью, он случайно удалил плагин. Просто так. Один клик — и важного плагина нет. Хорошо, что я сделал бэкап, и мы всё восстановили. Но осадочек, поверьте, остался.
И тут я понимаю: я сам виноват. Дал человеку полный доступ, хотя ему нужна была только кнопка «редактировать статью». А он получил все ключи от дома. Так не должно быть. Расскажу, как я это исправил, чтобы вы не наступили на те же грабли.
Почему так вышло
Просто потому, что я не думал о ролях. Дал знакомому админку — и всё, он бог и царь. А в WordPress же есть целая система ролей, придуманная именно для таких случаев. Я про неё, конечно, слышал. Но, как водится, узнал по-настоящему только после косяка.
Знакомо? У меня тоже так было. Пока не случился форс-мажор, я не копал в эту сторону. Потом сел и разобрался. И оказалось, что всё уже придумано до меня. Осталось только правильно этим пользоваться.
Стандартные роли WordPress
В WordPress из коробки есть пять стандартных ролей. Подписчик — может только читать и комментировать. Участник — чуть больше, но всё равно не редактор. Автор — пишет и публикует свои статьи. Редактор — управляет статьями всех, но не трогает настройки. Администратор — делает всё, включая удаление плагинов и смену темы.
И вот главная ошибка, которую делают почти все: дают админку кому попало. Я тоже так делал. А ведь редактору для правки статей админка вообще не нужна. Максимум — роль редактора. Всё, точка. Но даже это ещё не идеал.
Момент Икс: нужна была своя роль
В моём случае и редактор был бы лишним. Знакомому нужно было только писать свои статьи и редактировать их. Никакого доступа к чужим постам, настройкам, плагинам. Стандартной роли под это не нашлось — автор близко, но всё же не то.
И тут я понял, что пора создавать свою роль. Полез в настройки, начал разбираться… и чуть не бросил. Создавать роли вручную через код — это возня с правами, в которой легко запутаться. У меня уже дёргался глаз. Но выход нашёлся быстро.
Как я создал роль
Нашёл плагин Members — бесплатный, лёгкий, делает ровно то, что нужно. Ставится за минуту, и в нём есть визуальный редактор ролей. Никакого кода. Отмечаешь галочки — и роль готова. Именно то, что я искал.
Я создал роль «Контент-менеджер». Он может писать и редактировать свои статьи, загружать изображения, смотреть свои записи. Всё. Не может удалять плагины, менять тему, править пользователей и лезть в настройки. Идеально для авторов и тех, кому вы доверяете контент, но не ключи от сервера.
Ещё одна полезная роль
Пока разбирался, придумал вторую роль — «SEO-специалист». Даёт доступ к Yoast и мета-полям, чтобы человек мог править заголовки и описания. Но не даёт трогать сам контент. Удобно, когда SEO делает отдельный человек, а вы не хотите, чтобы он случайно переписал статьи.
Я сам настраивал SEO долгое время, и такая роль пригодилась бы мне уже тогда. Сейчас, если я найму специалиста, он получит ровно тот доступ, который нужен для работы. Ни больше ни меньше. Безопасно и удобно.
Почему Members, а не сложные ACL
Есть на рынке и тяжёлые плагины для управления правами. Они умеют всё и даже больше. Но, честно говоря, для моего сайта это пушка по воробьям. Мне не нужна армия пользователей со сложной структурой. Нужно было пару ролей — и всё.
Не ставьте сложные ACL-плагины, если у вас небольшой сайт. Это лишняя нагрузка и лишняя возня. Members закрывает мои задачи на сто процентов и при этом не жрёт ресурсы. Лучше простое решение, которое работает, чем монстр, который всё усложняет.
Что именно умеет Контент-менеджер
Распишу подробнее, чтобы вы поняли масштаб. Мой «Контент-менеджер» может создать запись, отредактировать её, опубликовать, загрузить картинку и удалить свою запись. Плюс смотреть свои черновики и комментарии к своим постам. Этого достаточно, чтобы нормально вести блог.
А вот чего он не может — так это трогать чужие записи, заходить в настройки, ставить или удалять плагины, менять темы и видеть список всех пользователей. Каждая из этих галочек по умолчанию выключена. Я выдал ровно столько прав, сколько нужно для работы. И сплю спокойно.
Как я объяснил знакомому
Когда я после случая с плагином сказал знакомому, что ограничу ему доступ, он сначала удивился. Думал, я обиделся. А я объяснил: это не про недоверие, это про безопасность. Никто не застрахован от случайного клика, даже самый аккуратный человек.
И знаете что? Он согласился. Сказал: «Логично, мне вообще не нужно видеть эти настройки». С тех пор он спокойно пишет статьи, а я не дёргаюсь. Всем стало лучше. Правильно настроенные роли — это удобно для обеих сторон.
Роль администратора — только мне
Сейчас админку на сайте имею только я. Полную. Со всеми правами. Больше никто. Если что-то нужно сделать — я делаю сам или выдаю временный доступ на один вечер, а потом забираю. Звучит строго, но это защищает и меня, и сайт.
И вам советую так же. Администратор должен быть один — владелец сайта. Все остальные получают ровно те права, которые нужны для их задач. Так и меньше рисков, и разбираться проще, если что-то сломалось: сразу понятно, кто что мог сделать.
Что делать со старыми доступами
Пока я разбирался с ролями, я заодно перебрал все старые аккаунты. Нашёл трёх пользователей, о которых забыл, и двоих удалил сразу. Третий остался, но с урезанными правами. Чистка доступов — это то, что я советую делать регулярно.
Заведите привычку раз в пару месяцев смотреть список пользователей. Лишних — удалять, оставшихся — проверять. Это займёт пять минут, зато исключит ситуацию, когда «вдруг» кто-то посторонний имеет доступ к вашему сайту.
Почему я теперь спокоен
Сейчас, когда кто-то из знакомых просит поправить статью, я не выдаю админку. Даю роль автора или контент-менеджера — и всё. Человек работает, сайт защищён, я не переживаю. Та система ролей, которую я настроил за один вечер, работает без сбоев.
Вот что значит правильный подход к доступам. Уделите этому час — и забудете о проблемах навсегда. Я потратил вечер, а спокойствия получил на годы вперёд. Оно того стоило, честное слово.
Как выглядят роли в Members
Если вы решите повторить мой опыт, объясню, что увидите. В плагине Members есть список всех ролей с галочками. Напротив каждой возможности — своя галочка. Включил — роль получает право. Выключил — не получает. Всё наглядно и понятно, ничего не надо запоминать.
Я создал новую роль, назвал её «Контент-менеджер» и прошёлся по списку. Отметил то, что нужно для работы с контентом, и пропустил всё, что касается настроек и управления. Заняло минут десять. Главное — не спешить и думать, что именно вы даёте.
Как проверить роль перед выдачей
Прежде чем дать кому-то новый доступ, я обязательно проверяю его сам. Создаю тестовый аккаунт с этой ролью, захожу под ним и смотрю, что видно. Если лишнего не видно — значит, роль настроена правильно. Если что-то вылезло — правлю настройки.
Такой проверкой я ловлю свои же ошибки. Один раз я забыл выключить доступ к настройкам темы, и тестовый аккаунт его увидел. Хорошо, что поймал это до выдачи настоящему человеку. Проверяйте роли сами, прежде чем доверять их другим.
Не только люди — но и плагины
Отдельно замечу: правильно настроенные роли защищают и от взломов. Если злоумышленник получит доступ к аккаунту с ролью автора, он не сможет установить вредоносный плагин или поменять тему. У него просто не будет таких прав. Лишний слой защиты, о котором мало кто думает.
Случай с моим знакомым показал мне, что ограничение прав — это не про недоверие к людям. Это про безопасность вообще. Ограничивая роли, вы защищаетесь от случайностей, ошибок и атак одновременно. Три пользы за один вечер настройки.
Мои дальнейшие планы
В будущем, если мой сайт вырастет и появится команда, я расширю систему ролей. Добавлю роли под конкретные задачи: кто-то ведёт блог, кто-то отвечает на комментарии, кто-то занимается SEO. С Members это делается легко, и я уже знаю, как.
А пока мне хватает того, что есть: моя полная админка, контент-менеджер для авторов и SEO-специалист на будущее. Система простая, но закрывает все сценарии. И главное — работает. Осталось только не забывать о ней и вовремя обновлять.
Финальные мысли
Знаете, я благодарен тому случаю с удалённым плагином. Звучит странно, но он заставил меня навести порядок. Без него я бы так и раздавал полные админки направо и налево. А теперь я знаю, как правильно, и могу поделиться этим с вами.
Не повторяйте мою ошибку. Давайте доступ по делу, а не по привычке. Настройте роли один раз — и забудьте о проблеме. И пусть ваши знакомые пишут статьи, не имея возможности что-то сломать. Так будет лучше всем.
Итог
После того случая я пересмотрел все доступы на своём сайте. Убрал лишние админки, создал нужные роли, раздал права по делу. Теперь, если кто-то случайно нажмёт не ту кнопку, ничего страшного не случится. Потому что у него просто нет таких кнопок.
План для ленивых:
- Не давай админку тем, кому нужен только контент.
- Разберись со стандартными ролями WordPress: автор, редактор, администратор.
- Если нужна своя роль — поставь плагин Members.
- Создай «Контент-менеджера» — писать и редактировать своё, и всё.
- Если SEO делает отдельный человек — сделай роль «SEO-специалист».
- Не ставь тяжёлые ACL-плагины без необходимости.
Больше статей про WordPress — от установки до продвижения — я собрал в сводном гайде. Там всё, что я наковырял, честно и без воды.