ubuntuusers.de

MySQL - Root-Login ohne Passwort möglich

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

lukasb314

Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Hallo!

Habe eine frische Installation von MySQL.

Nun versuche ich vergeblich, den Root-Zugang mittels Passwort zu beschränken. Was habe ich bisher versucht?

1. Über

mysqladmin -u root password xyz123

2. Über

mysqladmin -u root -p password xyz123

3.

Über mysql_secure_installation

Die o.g. Methoden verliefen unscheinbar und ohne Fehler. Dennoch ist es mir einfach mittels

mysql

oder

mysql -u root

mich als root anzumelden.

Wo liegt der Fehler?

Schönen Dank.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11258

Wohnort: München

Wenn jemand root-Rechte erlangt hat, kann er auf der Maschine machen, was immer er will... - die primären Sicherheitsmaßnahmen sollten also darauf abzielen, dass das nicht ungewollt passiert.

Die lokale Anmeldung passiert standardmäßig über einen Unix-Socket und das auth_socket Plugin (das für root kein Passwort nutzt) - wie man das ändern kann steht z.B. hier: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

Du musst aber aufpassen, wenn du Pakete installierst, die die MySQL-Datenbank manipulieren (z.B. UDFs, die in C/C++ implementiert wurden) - einige Postinst-Skripte gehen davon aus, dass root über den Unix-Socket Zugriff ohne Passwort hat und schlagen fehl, wenn man das ändert.

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Guck dir die User in der MySQL mal an:

select user, host, password from mysql.user;

Grundsätzlich ist es kein Problem das root-Passwort auch für den Socket zu aktivieren. Du musst nur gucken, dass du für Tools wie mysqlhotcopy oder ähnliches entsprechende User hast – das ist aber nur nötig, wenn du beisielsweise Backups automatisch machst. Normalerweise sollten keine Programme oder Dienste mit dem Root-Nutzer auf die DB zugreifen können und sollen.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Ich glaub wir müssen bei mir weiter hinten anfangen ☺

Der Ubuntu-User "root" hat ja mit dem MySQL-User "root" nichts gemein, oder?

Warum ist es mir als Ubuntu-root nun möglich, mich über bei MySQL ohne Passwort als root anzumelden?

Und umgekehrt - warum ist es mir als Ubuntu-Standard-Benutzer nicht möglich, mich bei MySQL als root anzumelden. (In diesem Fall kommt eine Passwortabfrage, wobei ich das Passwort scheinbar nicht habe).

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

lukasb314 schrieb:

Der Ubuntu-User "root" hat ja mit dem MySQL-User "root" nichts gemein, oder?

Korrekt.

Warum ist es mir als Ubuntu-root nun möglich, mich über bei MySQL ohne Passwort als root anzumelden?

Vermutlich ist kein Passwort gesetzt. Das wüssten wir genau, wenn du uns mal das Ergebnis der von mir geschriebenen Abfrage posten würdest.

Und umgekehrt - warum ist es mir als Ubuntu-Standard-Benutzer nicht möglich, mich bei MySQL als root anzumelden. (In diesem Fall kommt eine Passwortabfrage, wobei ich das Passwort scheinbar nicht habe).

Wenn kein Root-Passwort für MySQL gesetzt ist, prüft MySQL, ob der Unix-User gleich dem MySQL-User ist, und verweigert ggf. die Verbindung.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

misterunknown schrieb:

lukasb314 schrieb:

Und umgekehrt - warum ist es mir als Ubuntu-Standard-Benutzer nicht möglich, mich bei MySQL als root anzumelden. (In diesem Fall kommt eine Passwortabfrage, wobei ich das Passwort scheinbar nicht habe).

Wenn kein Root-Passwort für MySQL gesetzt ist, prüft MySQL, ob der Unix-User gleich dem MySQL-User ist, und verweigert ggf. die Verbindung.

Das klingt plausibel - danach schaut's auch aus.

misterunknown schrieb:

lukasb314 schrieb:

Warum ist es mir als Ubuntu-root nun möglich, mich über bei MySQL ohne Passwort als root anzumelden?

Vermutlich ist kein Passwort gesetzt. Das wüssten wir genau, wenn du uns mal das Ergebnis der von mir geschriebenen Abfrage posten würdest.

Sorry, anbei die Abfrage:

mysql> select user, host, password from mysql.user;
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| owncloud         | localhost |
| root             | localhost |
+------------------+-----------+

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

lukasb314 schrieb:

Sorry, anbei die Abfrage:

mysql> select user, host, password from mysql.user;
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

Das ist ein sehr schlechtes Zeichen. Was sagt denn

mysql> explain mysql.user;

Wenn die Passwort-Spalte in der User-Tabelle nicht existiert, ist irgendetwas extrem schiefgegangen.

Hoerbert

Avatar von Hoerbert

Anmeldungsdatum:
3. Oktober 2007

Beiträge: 375

misterunknown schrieb:

lukasb314 schrieb:

Sorry, anbei die Abfrage:

mysql> select user, host, password from mysql.user;
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

Das ist ein sehr schlechtes Zeichen. [...]

Nein, ist es nicht. Ab MySQL 5.7 (welches in Unbuntu 18.04 standardmäßig verwendet wird) gibt es die Spalte nicht mehr. Die heißt jetzt authentication_string. Außerdem ist tatsächlich auch wichtig, welches Authentifizierungs-Plugin für den root-Benutzer verwendet wird. Das ist in Ubuntu 18.04 standardmäßig auth_socket, was genau zu dem hier beschriebenen Effekt passt: Ubuntu-root kann sich ohne Passwort als MySQL-root anmelden, jeder andere Ubuntu-Benutzer kann sich gar nicht als MySQL-root anmelden, außer er verwendet sudo für den mysql-Programmaufruf.

Deshalb:

1
select user, host, plugin, authentication_string from mysql.user;

Weiteres findest du auch im MySQL-Wiki-Artikel, vor allem im Abschnitt Besonderheiten-beim-root-Passwort.

Gruß

Torben

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Hoerbert schrieb:

Nein, ist es nicht. Ab MySQL 5.7 (welches in Unbuntu 18.04 standardmäßig verwendet wird) gibt es die Spalte nicht mehr. Die heißt jetzt authentication_string.

In der Tat. Das hab ich unter Debian mit MySQL 5.6 nicht gesehen, und auch meine MariaDB-Instanzen (Versionen 10.1 und 10.2) nutzen nach wie vor die password-Spalte.

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Ah, ich danke euch vielmals! Alles klar soweit.

Hier der Vollständigkeit halber noch:

mysql> select user, host, plugin, authentication_string from mysql.user;
+------------------+-----------+-----------------------+-------------------------------------------+
| user             | host      | plugin                | authentication_string                     |
+------------------+-----------+-----------------------+-------------------------------------------+
| root             | localhost | auth_socket           |                                           |
| mysql.session    | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | mysql_native_password | *50C5A6257BCCDEDDAA0B86E359C2A28D4BDE1D4C |
| owncloud         | localhost | mysql_native_password | *5AACFA4D99801E5AB8017CEF1D7888C95C17585F |
+------------------+-----------+-----------------------+-------------------------------------------+

Hoerbert

Avatar von Hoerbert

Anmeldungsdatum:
3. Oktober 2007

Beiträge: 375

OK, dann ist das Verhalten so wie du es erlebst tatsächlich so gewollt. Wenn du das ändern möchtest: Siehe Wiki-Artikel 😉

Gruß

Torben

Krischu

Avatar von Krischu

Anmeldungsdatum:
5. März 2015

Beiträge: 146

Bitte löschen.

Antworten |