Ich habe ein paar BASH-Tools, die diese mysql -e "{command}"
Funktion verwenden. Das Passwort jedes Mal read -s
einzugeben, wenn ich diese Tools benutze, wäre mühsam. Um zu vermeiden, dass das Passwort mit dem Code in eine Klartextdatei geschrieben wird, speichere ich es im Speicher (mithilfe von ) und lasse es bei jeder Ausführung der Befehle von BASH lesen.
Mysql glaubt immer noch, dass das Kennwort über die Befehlszeile übermittelt wird (weil es sozusagen über die Befehlszeile übermittelt wird), und gibt weiterhin den Fehler "Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein" aus.
Für meine Zwecke muss ich diese Meldung nicht unterdrücken. Was ich wissen muss ist, was könnte es unsicher machen? Das Passwort ist physisch nie sichtbar, so dass Schulter-Surfen nicht möglich ist und sogar jemand, der mein SSH-Passwort erraten hat, dies nicht kann, da es im Speicher und nicht in Skripten gespeichert ist. Ist ein Man-in-the-Middle-Angriff oder ähnliches möglich?
~/.my.cnf
Beispiel Sie können pro Host angeben, indem Sie[client<hostname>]
z. B.[clientlocalhost]
MySQL-Tools wird es automatisch verwenden, damit es einfacher und sicherer istbash
gelesen, wenn Sie den Befehl ausführen? Wenn Sie das tunmysql -p"$pass"
, kann es jeder in sehenps
.Antworten:
Jeder, der Ihre Umgebungsvariablen (einschließlich der von Ihnen ausgeführten Programme) sehen kann, kann das Kennwort sehen. Und jeder, der Ihre Prozesse anzeigen kann, kann die Befehlszeile sehen, mit der sie ausgeführt werden, einschließlich der Parameter.
Für eine Box, in die sich nur Sie einloggen, ist das Risiko wahrscheinlich unbedeutend. Aber für einen gezielten Angriff auf Sie persönlich ist dies ein trivialer Angriffsvektor im großen Stil der Dinge.
quelle
~/.history
, etc