Перейти к содержимому

Почему в phpMyAdmin не работает вход под root

13 сентября 2026

Если вы привыкли управлять базами через phpMyAdmin ещё на виртуальном (shared) хостинге, желание войти под root на собственном VPS понятно: один логин, все базы перед глазами. Но один украденный пароль или захваченный сеанс root поставит под угрозу базы всех сайтов на сервере.

На shared-хостинге доступ ко всем своим базам не означает полномочий root на весь сервер MariaDB. Например, cPanel разделяет базы по учётным записям и позволяет назначать права их пользователям. На собственном VPS root даёт гораздо больше полномочий. Переносить привычку «один вход для всего» на эту учётную запись небезопасно.

В RISH вопросы безопасности поставлены во главу угла. Мы рекомендуем управлять базами через интерфейс RISH или локальную программу с подключением по SSH. phpMyAdmin остаётся дополнительной опцией для тех, кому он нужен. При этом RISH сохраняет безопасные настройки MariaDB: вход под root через веб в стандартной установке не работает. Такой порядок MariaDB выбрала ещё в 2019 году.

Это стандарт MariaDB с 2019 года

Серия MariaDB 10.4 стала стабильной в июне 2019 года. Среди её изменений — аутентификация unix_socket по умолчанию на Unix-подобных системах. Это прямо указано в описании MariaDB 10.4.

Разработчики изменили настройки ради безопасности. При новой установке учётная запись root@localhost сразу получает защищённый способ входа. Администратору больше не нужно придумывать отдельный пароль root базы, а затем сохранять его для скриптов обслуживания. О причинах решения MariaDB рассказала в статье, опубликованной 1 апреля 2019 года.

Саму учётную запись root при этом сохраняют. Меняется способ входа: системный root может подключиться к локальной базе через сокет, а парольный вход для root базы изначально не настроен. RISH сохраняет этот порядок при новой установке. Поэтому искать «пароль root для phpMyAdmin», который установщик якобы забыл показать, не нужно.

Почему phpMyAdmin не проходит проверку

Здесь важно различать две учётные записи. Системный root управляет Linux-сервером. Root MariaDB управляет базами данных. У них одинаковое имя, но разные права и назначение. Пароль системного root сам по себе не является паролем MariaDB.

При входе через unix_socket MariaDB узнаёт у операционной системы, от имени какого пользователя работает подключившаяся программа. Если клиент запущен системным root, стандартная настройка разрешает ему войти как root@localhost. Сокет здесь — способ локального соединения между программами на одном сервере. Подробности есть в документации MariaDB.

phpMyAdmin — веб-приложение. В RISH его PHP-код выполняется от пользователя сайта. Даже при подключении через тот же локальный сокет MariaDB видит обычного системного пользователя. Слово root в форме входа не даёт ему полномочий администратора. Открытый рядом SSH-сеанс под root тоже не передаёт свои права браузеру.

Чем опасен полный доступ к базам через веб

Представьте сервер с десятью сайтами. Вы открываете phpMyAdmin под root, чтобы поправить одну таблицу одного сайта. Но получаете доступ ко всем базам этого сервера MariaDB: можете читать, менять и удалять данные, создавать пользователей и выдавать им права.

Если злоумышленник получит пароль или захватит сеанс root, под угрозой окажутся базы всех этих сайтов. У пользователя с доступом к одной базе полномочий меньше. Это не делает его данные неуязвимыми, но ограничивает возможный ущерб.

Администратор тоже может ошибиться: собирался удалить тестовую базу, а выбрал базу работающего сайта. У root есть права на обе, поэтому такая ошибка может стоить сайту всех данных.

Именно поэтому права выдают под конкретную задачу. Для работы с таблицами одного сайта не нужен доступ к данным всех остальных. Такой подход называется принципом минимальных привилегий; его рекомендует OWASP в руководстве по безопасности баз данных.

Сложный пароль не решает всех проблем

У веб-приложений бывают уязвимости. Например, в июне 2019 года разработчики phpMyAdmin сообщили об ошибке, позволявшей обманом заставить браузер пользователя выполнить нежелательные запросы к базе, включая добавление или удаление данных. Ошибку исправили в версии 4.9.0. Это исторический пример, описанный в уведомлении PMASA-2019-4.

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

Поэтому phpMyAdmin нужно обновлять и защищать независимо от выбранного логина. Разработчики рекомендуют HTTPS, двухфакторную аутентификацию и дополнительные ограничения доступа. В настройках предусмотрен и отдельный запрет входа под root. Эти меры описаны в официальном руководстве phpMyAdmin.

Почему мы рекомендуем обходиться без phpMyAdmin

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

Через доступный из интернета phpMyAdmin можно обращаться к базе, даже если её сетевой порт закрыт для внешних подключений: запросы выполняет веб-приложение на сервере. Поэтому одной сложной комбинации в поле «Пароль» для защиты панели недостаточно. OWASP рекомендует защищать такие инструменты аутентификацией, HTTPS и сетевыми ограничениями.

Если phpMyAdmin не установлен, атаковать его на этом сервере невозможно. Ради редкого изменения таблицы не обязательно держать ещё одну административную панель доступной через веб.

Чем пользоваться вместо phpMyAdmin

Основные действия доступны в интерфейсе RISH. В меню Midnight Commander откройте «Базы данных»: там можно создать базу и выдать пользователю права на неё, посмотреть информацию о существующей базе или удалить её.

Для редактирования таблиц и SQL-запросов используйте программу на своём компьютере, например DBeaver или DataGrip. Если вы уже работаете в PhpStorm или OpenIDE с DB-клиентом, управлять базами можно прямо в IDE.

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

Для туннеля используйте SSH-доступ по ключу с разрешённым перенаправлением соединений. В стандартной настройке RISH у пользователей группы SFTP перенаправление отключено; для такого подключения нужен административный SSH-доступ – то есть root.

Логин и пароль MariaDB указываются отдельно. Обычный SSH-туннель к порту базы не даёт права root MariaDB автоматически, даже если SSH-соединение открыто под системным root. Для повседневной работы используйте пользователя базы с необходимыми правами.

Почему администратору не нужен пароль базы

После входа на сервер по SSH как системный root достаточно одной команды:

mariadb

В стандартной настройке клиент сам подключится через локальный сокет — указывать его отдельно не нужно. MariaDB проверит системного пользователя и откроет консоль без отдельного пароля базы. Для такого входа нужны права системного root.

Разработчики MariaDB объясняют это просто: системный root уже имеет доступ к файлам базы и памяти процессов. Дополнительный пароль MariaDB не способен надёжно защитить данные от системного администратора. Зато такой пароль можно забыть, раскрыть или сохранить в небезопасном месте. При входе через сокет скриптам обслуживания не нужно хранить этот секрет. Такова аргументация в статье MariaDB о новой аутентификации.

Парольный вход зависит от настроек

Стандартный вход root через unix_socket действует с 2019 года. Если на вашем сервере root входит в phpMyAdmin по паролю, настройки этой учётной записи отличаются от стандартных.

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

Мы рекомендуем сохранять стандартный доступ root через локальный сокет, а для обычной работы использовать меню RISH или локальную программу через SSH. Если создать для веб-панели пользователя superadmin с теми же полными правами, что у root, риск останется прежним. Другое имя не ограничивает доступ к данным.

Если вы всё же хотите использовать phpMyAdmin

Привычка работать через браузер сильна, поэтому мы сохранили возможность установки phpMyAdmin в RISH. По умолчанию он не устанавливается. Если он вам нужен, установите его отдельно через пункт «Установка/управление CMS/PMA» в меню Midnight Commander. Выбор остаётся за администратором.

Для phpMyAdmin мы рекомендуем отдельный домен или поддомен и отдельный сайт в RISH. Установщик показывает эту рекомендацию, но позволяет выбрать другое размещение. Папка /phpmyadmin на домене основного сайта не даёт такого же разделения.

У отдельного доменного имени есть практическая польза: браузер ограничивает взаимодействие кода основного сайта со страницами панели. Это следует из правил изоляции сайтов в браузере. Для отдельного сайта также удобнее ограничить доступ независимо от публичных страниц.

Однако другой адрес сам по себе не изолирует файлы, PHP-процессы и сеансы на сервере. Он также не заменяет обновления, HTTPS и ограничения доступа к панели. Разработчики phpMyAdmin отдельно рекомендуют хранить его сеансы отдельно от других PHP-приложений. Рассчитывать только на то, что адрес никто не узнает, не стоит.

Если решили пользоваться phpMyAdmin, входите под пользователем MariaDB с правами на нужные базы. В текущей версии RISH сохранённые реквизиты находятся на сервере в файле:

/root/rish/credentials/ИМЯ_ПОЛЬЗОВАТЕЛЯ

Для входа нужны поля Login и Password из секции [MariaDB]. Пароль SFTP и пароль администратора CMS относятся к другим учётным записям. Если пароль базы меняли вручную, используйте актуальный.

Отдельный адрес и ограниченные права помогают уменьшить риск. Но если ваши задачи решаются через RISH или локальную программу с SSH-туннелем, мы рекомендуем обойтись без phpMyAdmin.