При новой (но старой) установке Ubuntu и MySQL я обнаружил, что могу получить доступ к MySQL через клиент командной строки, не спрашивая ни пользователя, ни пароля.
Меня это беспокоило как дефолтная ситуация, и я попытался ее исследовать. Для входа в систему как root требуется пароль root. Но вход в систему без указания пользователя (т. Е. Просто ввод mysql
в командной строке) не спросил у меня ни пользователя, ни пароля.
Я думаю, что отследил это до пользователя debian-sys-maint
, который, с одной стороны, имеет полные разрешения MySQL, а также является клиентским пользователем по умолчанию, как определено в /etc/mysql/debian.cnf
с другой.
Моим первым побуждением было полностью избавиться от пользователя, потому что это казалось мне дырой в безопасности, но после прочтения, включая сообщения, ссылки на которые приведены ниже, кажется, что debian-sys-maint
нужно.
Итак, мой план - попробовать следующее:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'debian-sys-maint';
GRANT RELOAD on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxxx';
FLUSH PRIVILEGES;
Может ли кто-нибудь прокомментировать это как рекомендуемый / ожидаемый / правильный способ защиты установки MySQL по умолчанию?
Должен ли я также изменить /etc/mysql/debian.cnf
удалить этот раздел?
[client]
host = localhost
user = debian-sys-maint
password = xxxxxx
socket = /var/run/mysqld/mysqld.sock
(Предупреждает: # Automatically generated for Debian scripts. DO NOT TOUCH!
)
Я собираюсь заменить его своим ~/.my.cnf
клиентский раздел в любом случае.
Обновление: разрешения на /etc/mysql/debian.cnf
являются:
-rw------- 1 root root 312 2012-05-20 23:07 /etc/mysql/debian.cnf
Ссылки:
Ответ на этот вопрос заключается в том, что debian-sys-maint
счет - отвлекающий маневр.
Я наблюдал за «анонимным» пользователем MySQL.
На это отвечают эти 2 вопроса, а также мой собственный, который я опубликовал вчера: