mariadb5 mit mysqldump erstellte Sicherungsdatei wird mit abweichendem Eigentümer und Benutzergruppe angelegt

  • Hallo Zusammen,

    wenn ich eine Sicherung meiner Datenbank mittels:

    "/mnt/ext/opt/mariadb5/bin/mysqldump -u user1 -p'datenbankpasswort' fhem | gzip -c >/share/CACHEDEV1_DATA/Haus/Fhem/mariadbTmp/dump.sql.zip"

    anlege, gehört die erzeugte Datei jedoch dem Eigentümer "user2" und einer "Benutzergruppe2". Woran liegt dies? Gibt es eine Möglichkeit den Eigentümer und die Benutzergruppe vorzugeben? Eigentümer des Zielverzeichnisses für die Sicherung ist "Benutzer1"

  • Ich habe da keine Ahnung von, aber mit welchem Account bist Du denn eingeloggt wenn Du den dump erstellst?

    Es gibt ja immer wieder mal Ärger wenn der alternative Admin statt der echte admin verwendet wird...

  • Hi, danke für den Denkanstoß.

    Das Problem liegt an den Usereinstellungen auf der NAS. Der User benötigt Adminrechte auf der NAS. Bedeutet:

    Erstelle ich einen Dump als Datenbankuser ohne Adminrechte bzw. ohne gleichnamigen User auf der NAS, wird der Dump mit den Eigenschaften des NAS-admin im Zielverzeichnis angelegt. Hat der Datenbankuser=NAS-User Adminrechte auf der NAS, so wird der Dump mit den Eigenschaften des NAS-Users im Zielverzeichnis angelegt.

    Die Lösung ist nicht gut da unsicher (User hat adminrechte auf der NAS), aber ich habe keine Idee wie, oder mit welchen Einstellungen das zu ändern wäre

  • Erstmal:

    Der User, den du mit mysqldump -u user1 angibst, ist ein reiner Datenbankuser, der nichts mit einem womöglich gleich lautenden Unix/NAS-User zu tun hat, und es braucht auch keinen entsprechenden NAS-User zu geben. Der user1 muss auf der Datenbank die Rechte auf die zu exportierenden Objekte haben. (Hinweis: Für den Dump nimmt man idR. den User "root" - der übrigens nichts mit dem "rein zufällig" gleichlautenden Unix-User root zu tun hat - da nur dieser User garantiert Zugriff auf alle DB-Objekte hat. Mit anderen Usern erstellte Dumps riskieren, unvollständig zu sein.)


    Dann schreibt mysqldump überhaupt keine Ausgabedatei, sondern der Dump wird nach stdout geschrieben. stdout muss sinnvollerweise umgeleitet werden, um in eine Datei zu kommen. In deinem Beispiel tust du das, indem stdout in eine Pipe geschickt wird, welche wiederum als Eingabe für gzip dient.


    Deine Datei dump.sql.zip gehört folglich dem NAS-User, der gzip gestartet hat.(Diesen NAS-User braucht es nicht als Datenbankuser zu geben.)


    Um zu verstehen, warum deine Dump-Datei welchem User mit welchen Rechten gehört, musst du dir anschauen, wann und wie dein Dump-Befehl aufgerufen wird.