Назад | Перейти на главную страницу

Неожиданная аутентификация с Mariadb

Раньше я довольно широко использовал MySQL в Linux, поэтому был вполне уверен, что установка MariaDB (10.0.31) на этом сервере Mint 18.1 (Ubuntu) будет достаточно простой. И установка была именно такой.

Но, как ни странно, теперь он, кажется, знает, когда я прикидываю, кто я. Раньше с MySQL на Redhat, Suse, PCLinixOS ... я мог войти в mysqld, который был настроен с пустым паролем для root @ localhost (то есть с использованием сокета AF_UNIX), утверждая, что я был root, но это не сработало на моем Mint / MariaDB:

 symcbean@animal ~ $ mysql -u root
 ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Но это делает работать, если я "su":

 symcbean@animal /etc $ su
 Password: 
 animal etc # mysql
 Welcome to the MariaDB monitor.  Commands end with ; or \g.
 Your MariaDB connection id is 47
 Server version: 10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04

 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 MariaDB [(none)]> select current_user;
 +----------------+
 | current_user   |
 +----------------+
 | root@localhost |
 +----------------+
 1 row in set (0.00 sec)

(то же самое с mysql -u root, mysql -u root -h localhost).

У моего пользователя без полномочий root есть разрешения на файл сокета:

 symcbean@animal ~ $ ls -l /var/run/mysqld/mysqld.sock 
 srwxrwxrwx 1 mysql mysql 0 Nov 29 20:46 /var/run/mysqld/mysqld.sock

У моего пользователя root нет ~ / my.conf или ~ / .my.cnf для хранения пароля.

У меня нет привычки запускать небезопасные системы, но меня озадачивает это очевидное изменение поведения. Действительно ли сервер проверяет uid клиента?

MariaDB в Ubuntu 15.10 и более поздних версиях автоматически использует Аутентификация сокета UNIX по умолчанию. Используется UID пользователя, открывающего соединение с локальным сокетом, который может пройти аутентификацию без пароля. Только MariaDB основывается на текущих версиях Debian, а Ubuntu включает это по умолчанию.