it-swarm.com.de

MySQL-Root-Passwort in .my.cnf gespeichert

Vor dem Start eines Projekts habe ich das MySQL-Root-Passwort des Servers zurückgesetzt. Das colo, das das Projekt hostet, möchte, dass das Kennwort der Stammdatenbank des Servers in der Datei .my.cnf im Klartext mit den Berechtigungen 400 gespeichert wird. Ich kann nur nicht sehen, wie dies eine gute Sicherheitspraxis ist, aber er sagte, dass dies der Fall ist war etwas, das allgemein getan wurde.

Ist es sicher, das Kennwort der Stammdatenbank im Klartext in der Datei .my.cnf zu speichern?

Natürlich ist jedes Passwort, das im Klartext gespeichert ist, eine schlechte Idee, aber der Speicherort der Datei befindet sich in /etc/my.cnf. Wenn also ein Remote-Benutzer Zugriff auf diese Datei hätte, gibt es meiner Meinung nach mehr Sorgen als Bedenken Ihr MySQL-Passwort gestohlen. Wenn Sie jedoch nicht der einzige sind, der physischen Zugriff auf das System hat, sind Sie immer noch vor anderen geschützt, die Ihre Datei lesen, da Ihre Dateiberechtigungen 400 betragen, vorausgesetzt, niemand hat die Berechtigungen auf dem System eskaliert. Ich habe einige Nachforschungen angestellt, um Ihr Passwort in der my.cnf-Datei zu haben, und es ist wahr, dass es tatsächlich eine ziemlich übliche Praxis ist.

Übrigens müssen Sie sicherstellen, dass Sie die Datei in der Datei /etc/my.cnf, die der MySQL-Server zum Booten verwendet, nicht bearbeiten, da in diesem Fall jeder den Server mit ALLEN Berechtigungen und ALLEN Datenbanken ohne a verwenden kann Passwort. Erstellen Sie stattdessen eine Datei in Ihrem lokalen/root-Verzeichnis, nennen Sie sie my.cnf und stellen Sie sicher, dass nur root sie lesen kann (natürlich).

Der einfachste Weg, dies zu tun, besteht darin, einen Client-Abschnitt der Datei ~/.my.cnf zu verwenden und die Anmeldeinformationen in dieser Datei hinzuzufügen.

[client] 
user=root
password=somepassword

Wie gesagt, stellen Sie sicher, dass die Datei NUR von root gelesen werden kann. - -

10
eof0100

Es tut mir leid, aber wenn sie mir sagten, ich solle mein Datenbankkennwort einfach schreiben, würde ich "nein" sagen. Jetzt habe ich gehört, dass auf cPanel-Servern, auf denen phpMyAdmin ausgeführt wird, diese Datei zum Installieren und Deinstallieren von Site-Software verwendet wird. Ich verstehe, dass dies immer noch besser möglich ist. Ich habe mein DB-Passwort noch nie in die .my.cnf-Datei eingefügt, die nur nach einem einfachen LFI-Angriff fragt.

Meiner Meinung nach ist es nicht sicher, selbst wenn die Berechtigungen auf 600 festgelegt sind. chmod 600 .my.cnf

Bearbeiten: Ich habe mehr darüber nachgedacht und kann sehen, dass dies eine akzeptable Methode ist, mit der Sie einen Client über ein Skript aufrufen möchten, das nicht interaktiv ausgeführt wird. Es gibt keine Möglichkeit, das Kennwort über die Tastatur einzugeben. Auf einigen Systemen wird die erste Zeile des Skripts gelesen und (falsch) als Ihr Kennwort interpretiert.

Aber halten Sie diese Datei trotzig auf 600 eingestellt. Trotzdem spüre ich immer noch die schlechte Praxis.

1