16568

Zugriff auf MySQL von PHP ohne Kennwort oder Passwort

gelöstFrageLinux
Irgendwo habe ich das schon mal gelesen...

Da ich gerade eine Testumgebung baue, in der der Zugriff auf MySQL erforderlich ist, ich aber nicht ständig Kennwörter jonglieren will, erinnerte ich mich an die Möglichkeit, das Ganze auch ohne zu realisieren.

Leider habe ich das irgendwo mal gemarkert, aber finde es nicht mehr.

root-Zugriff ist selbstverständlich verfügbar.

Ich glaube, das war was mit einer .cnf-Datei, aber egal wie sehr ich google, ich finde anscheinend nicht den richtigen Suchstring face-sad


Danke

Lonesome Walker
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 175606

Url: https://administrator.de/forum/zugriff-auf-mysql-von-php-ohne-kennwort-oder-passwort-175606.html

Ausgedruckt am: 15.07.2025 um 00:07 Uhr

dog
dog 01.11.2011 um 16:15:14 Uhr
Was willst du jetzt?

Einen MySQL-Benutzer ohne Passwort anlegen?
CREATE USER 'hans'@'localhost'  

In PHP das Standard-Passwort vorgeben?
php.net/manual/de/mysql.configuration.php

Im C-Client das Standard-Passwort vorgeben?
[client]
user=hans
password=bernd
16568
16568 01.11.2011 um 16:26:14 Uhr
Weder noch.

Es gibt die Möglichkeit, die MySQL-Zugangsdaten in einer Config abzulegen, die nicht im WWW-Verzeichnis liegt, und über die man auch einfach so nicht stolpern kann.
Das Standard-Pwd in PHP läßt sich auch auslesen, ergo suche ich das auch nicht...


Lonesome Walker
dog
dog 01.11.2011 um 16:29:53 Uhr
Das letzte Schnipsel ist der entsprechende Eintrag in der /etc/my.cnf Datei.
Auslesen kann das aber immer noch jeder.
16568
16568 01.11.2011 um 17:39:52 Uhr
Zitat von @dog:
Auslesen kann das aber immer noch jeder.
Nö, nur der, der Zugriff auf /etc hat.
Den Bereich habe ich auch schon gefunden, da hat es auch klick gemacht, und deswegen ist mir das auch wieder eingefallen (Thema .cnf im Eingangsthread)

Aber wie connecte ich dann von PHP auf die MySQL-Datenbank?


Lonesome Walker
dog
dog 01.11.2011 um 20:33:23 Uhr
Ich würde sagen gar nicht, weil PHP dann seine eigenen Default-Werte einsetzt, wenn du das Feld leer lässt.

static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
{
[...]

                if (!passwd) {
                        passwd = MySG(default_password); //holt mysql.default_password aus php.ini
                        passwd_len = passwd? strlen(passwd):0;
                }
16568
16568 01.11.2011 um 20:43:30 Uhr
Doch, es gibt die Möglichkeit, ich habe sie nur noch nicht gefunden :-P

Falls ich aber fündig werde, Antwort hier im Thread face-smile


Lonesome Walker
16568
16568 26.04.2012 um 22:01:53 Uhr
Tja, das mit .cnf war schon der richtige Weg face-smile
Man braucht nur im Home-Verzeichnis des jeweiligen Users eine .my.cnf anzulegen, und da drin steht dann:

[client]
user=username
password=password
socket=/var/lib/mysql.sock

(oder so ähnlich :-P)
Wichtig ist jedoch, daß das jeweilige Home-Verzeichnis lesegeschützt vor den anderen Usern ist, läßt sich bei Shared Hosting im Eigenbau prima realisieren, und wenn PHP als CGI läuft, dann klappts auch mit den kennwortlosen Verbinden face-smile


Lonesome Walker