Passwortübergabe in Shell-Skripten

Aus ConfigWiki
Wechseln zu: Navigation, Suche


Wenn der MySQL-Client nicht-interaktiv in Skripten aufgerufen werden soll und damit das Passwort nicht eingegeben werden kann, kann es als Parameter übergeben werden:

<source lang="bash">

mysql -pGEHEIM DBNAME

</source>

Das führt aber dazu, daß das Passwort in der Prozessliste auftaucht und somit für andere Benutzer auf dem System z.B. mit ps sichtbar ist.

Alternativ kann das Passwort auch als Umgebungsvariable 'MYSQL_PWD' übergeben werden:

<source lang="bash">

EXPORT MYSQL_PWD=GEHEIM
mysql DBNAME

</source>

Auch diese Methode ist unsicher, da auch die Umgebungsvariablen u.U. ausgelesen werden können.

Die sicherste Methode ist das Hinterlegen des Passworts in der Konfigurationsdatei ~/.my.cnf: <source lang="bash">

[client]
password=GEHEIM

</source> mit restriktiven Zugriffsrechten: <source lang="bash">

chmod 600 ~/.my.cnf

</source>

Der Aufruf erfolgt dann, wie schon bei der Variante mit der Umgebungsvariable, ohne Option -p.

Meine Werkzeuge