воскресенье, 8 февраля 2015 г.

Пароль админа в MySQL сервере если стоит панель Plesk

В этом посте я изначально хотел рассказать об одном чудо-хостере предоставляющим VDS. Но потом я решил не делать никакой антирекламы и т.п. Поэтому просто опишу проблему, а также пути ее решения. Итак, есть VDS и есть Plesk. Знакомо, не так ли? MySQL из Plesk'а можно управлять с помощью PHPMyAdmin, имя пользователя MySQL по-умолчанию не root, а admin. Но как узнать пароль к MySQL? Хостер нам его не предоставил, Plesk поставился автоматом. Можно конечно поменять его через PHPMyAdmin ... но это ведь не наш метод. Нам нужно узнать )) Вначале несколько полезных ссылок одну из которых я процитирую:


Теперь я процитирую пост по первой ссылке, дабы он не потерялся в дебрях всемирной паутины:

Если на сервере стоит панель управления Parallels Plesk, то зачастую владелец сервера понятия не имеет о пароле root в MySQL. Чтобы узнать его самостоятельно логинимся в SSH под root. Затем находим пароль в /etc/psa/.psa.shadow

# cat /etc/psa/.psa.shadow
therootpassword

Имя пользователя будет не root, а admin. Чтобы не вводить его каждый раз руками я рекомендую сохранить его в ~/.my.cnf (доступный на чтение только root)

# touch ~/.my.cnf
# chown root:root ~/.my.cnf
# chmod 600 ~/.my.cnf
# cat > ~/.my.cnf << EOF
[client]
user=admin
password=therootpassword
EOF

После этого mysql и mysqladmin просить пароль перестанут.

UPDATE: На одном из серверов столкнулся с тем, что в /etc/psa/.psa.shadow пароль не в plain text, а в виде хеша. Рядом лежит файлик /etc/psa/README.psa.shadow в котором говорится следующее
Starting from version 10.2, Panel encrypts the Administrator's password before
saving it to /etc/psa/.psa.shadow. For security reasons, only users with root
permissions are able to get the plain password. To obtain the password, such
users should run the following command:

/usr/local/psa/bin/admin --show-password
Выполнив эту команду вы получите пароль для пользователя "root" (в старых версиях был "admin").


А теперь самое интересное. У нас как раз попался тот случай, когда пароль в /etc/psa/.psa.shadow хранился в зашифрованном виде. Запустив /usr/local/psa/bin/admin --show-password можно было посмотреть его в открытом виде. Однако, при попытке логина на MySQL сервер он не подходил. Причина банальна ))) При установке пароль не раскодировался, т.е. паролем на MySQL сервер была сама строка хеша. Т.е. содержимое /etc/psa/.psa.shadow и было самим паролем (!) , т.е. дав команду:

mysql -uadmin -p`cat /etc/psa/.psa.shadow`

Мы успешно залогинились на MySQL сервер. Бинго блин.

Комментариев нет :

Отправить комментарий