Freitag, 25. Mai 2012, 20:25

Du bist nicht angemeldet.



Walter_vdV

hat sich gut eingelebt.

  • »Walter_vdV« ist der Autor dieses Themas

Beiträge: 96

Ubuntu: 10.10

Architektur: 32-bit

  • Private Nachricht senden

1

Montag, 3. Januar 2011, 00:27

Benutzerverwaltung - ich überreiss es nicht mehr

Hallo zusammen,
ich will jetzt meinen umfangreichen Datenbestand, der in MySQl-Datenbanken gespeichert ist auch auf meinem
Linux-System benutzen. Ich habe mir nun alle notwendigen Werkzeuge installiert. Intelligenterweise legt nun
der MySQL-Server einen eigenen Nutzer an, als ob die Nutzerverwaltung nicht schon undurchschaubar genug ist.
Auf das Datenbankverzeichnis in "/var/lib/mysql" hat sinnigerweise nur der mysql-Nutzer Zugriff (ich spare mir
hierzu jeglichen Kommentar über Usability usw. sonst geht mir noch die Galle hoch). Also habe ich mich zu der
Gruppe der mysql-User gesellt und die Rechte entsprechend gesetzt. Funktioniert jetzt auch mit dem Zugriff.
Ich will aber meine Datenbanken nicht in "/var/lib/mysql" ablegen sondern in einem Verzeichnis auf meiner
home-Partition. Wie man MySQL konfiguriert weiß ich. Um den mysql-server starten zu können, muß ich aber das neue
Verzeichnis wieder dem mysql-server schenken und ich muss mich ihm wieder anschliessen. Das ist aber doch ziemlich
pardox, sinnvollerweise müsste ich doch dem mysql-server sagen, er soll sich meiner Gruppe anschliessen.
Wie geht das, falls ich nicht auf dem Holzweg bin? In der grafischen Oberfläche geht es nicht und im Terminal ???

Jetzt wird es kompliziert.
Um auf die Schnelle ein paar Daten zu bekommen, reichen entsprechende sql-Abfragen, wobei man mit Scripten,
wie ich bereits festgestellt habe, auch nette Sachen machen kann. Um aber Daten zu bearbeiten, vor allen Dingen
mit den relationalen Zusammenhängen, brauche ich meine Oberflächen und diese laufen nur unter Win (wer weiss
wann ich die auf Linux umgemodelt habe).
Aber dazu habe ich meine Virtuelle Maschine. Das Datenbankverzeichnis habe ich mit VirtualBox eingebunden und das
funktioniert auf der VM auch. Wenn ich nun das Datenbankverzeichnis dem Benutzer mysql zuordne funktioniert das
in der VM nicht mehr. Wie kann ich nun den "VirtualBox-User" der mysql-Gruppe zuordnen. Diese Zuordnungen müssen
immer so erfolgen, dass erzeugte Dateien und Unterverzeichnisse die gleichen Rechte bekommen.
Im Moment bin ich mit meinem Latein am Ende.

Noch eine ergänzende Frage. Der mysql-server startet immer beim Hochfahren des Systems, das will ich aber nicht.
In der GUI-Oberfläche von Startprogrammen ist er aber nicht eingetragen und auch nicht in den Runlevel-
Verzeichnissen. Wo werden noch Startprogramme eingetragen?

Gruß Walter
Wer in meinem Beitrag einen Fehler findet, darf ihn behalten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Walter_vdV« (14. Januar 2011, 13:51)


5e4n

hat hier 2. Wohnsitz.

Beiträge: 442

Ubuntu: ---

Desktop: ---

Architektur: ---

  • Private Nachricht senden

2

Mittwoch, 5. Januar 2011, 10:30

Hm... ich glaube, hier handelt es sich um ein paar Verständnisprobleme... ich versuche sie (so gut ich kann) aufzuklären!


Also folgendes: die User in einer VM kannst Du nicht einer Gruppe auf Deiner Linux-Box hinzufügen, denn die VM-User befinden sich nicht auf dem Linux-System. Die Userverwaltung auf deiner Linux-Box ist unabhängig von Deiner Userverwaltung in der VM.


Dein Problem mit der Datenbank im Home könntest Du (vermutlich) folgendermassen umgehen:

Quellcode

1
chown -R deinuser:mysql /home/deinuser/verzeichnis

Somit hätten sowohl der MySQL-User, der in der Gruppe mysql gehört, wie ich auch Dein User Zugriff mitsamt allen Berechtigungen um auf das Verzeichnis zuzugreifen. Um etwas mehr über chown zu erfahren: link :)

Es gibt übrigens einige sehr gute Gründe, warum die der MySQL-Server einen eigenen Nutzer anlegt. Die Systemsicherheit zum einen: wenn ein Service kompromittiert wird, sind die anderen Services (noch) unbetroffen. Hält natürlich einen Angreifer nicht endlos ab, ist aber eine Hürde. Auch kann ein Service nicht plötzlich Daten eines anderen übernehmen und bearbeiten, was für die Korrektheit der Daten sorgt. Dieser Nachteil, den Du da erwähnst, ist also eigentlich ein Vorteil!


Um den MySQL-Server beim hochfahren nicht automatisch zu starten, kannst Du folgendes tun:

Quellcode

1
update-rc.d -f mysqld remove

Ich empfehle Dir, Dich in das Thema einzulesen. Es gibt einen tollen Guide hier und hier :)


Soviel also mal von mir... ich hoffe echt, dass ich helfen konnte. Wenn nicht... naja, probieren wirs halt nochmal!

Gruss,
5e4n

Walter_vdV

hat sich gut eingelebt.

  • »Walter_vdV« ist der Autor dieses Themas

Beiträge: 96

Ubuntu: 10.10

Architektur: 32-bit

  • Private Nachricht senden

3

Donnerstag, 6. Januar 2011, 16:37

@5e4n erst mal danke für Deine Antwort (5e4n wie spricht man das eigentlich aus )
Du hast recht hier handelt sich wirklich um ein Verständnisproblem. Erst mal, mit chown und Konsorten habe ich mich ausführlich auseinandergesetzt ohne zu behaupten schon alles zu wissen.
Also noch mal um was es geht. Vorausschicken möchte ich, dass ich zur Verwaltung von MySQL den MySQL-Administrator und den MySQL-QueryBrowser benutze. Außerdem bin ich am System mit sagen wir mal "chef" angemeldet.
Wenn ich MySQL installiere wird mit "/var/lib/mysql/" das Datenbankverzeichnis angelegt, ausserdem ein User mysql in der Gruppe mysql (bezeichne es später als mysql:mysql). Zugriff auf "/var/lib/mysql/" hat von Anfang an nur mysql sonst niemand. Um nun Zugriff auf "/var/lib/mysql/" zu bekommen muss ich mich (chef) der Gruppe mysql mit usermod anschliessen und danach entsprechend mit chmod die Rechte für die Gruppe anpassen (was das soll? - vor allen Dingen weil sowohl mein Goldfisch als auch meine Oma fleissig meinen PC benutzen und mit Vorliebe mysql-Datenbanken zerstören -- aber lassen wir das). Das funktioniert alles prima, ich kann meine Datenbanken nach "/var/lib/mysql/" kopieren, mit dem QueryBrowser meine Daten editieren usw. Ich habe allerdings noch keine neue Tabelle angelegt, wobei ich stark vermute dass dies nicht funktioniert.
Nun will ich aber meine Tabellen nicht in dem vorgegebenen Verzeichnis haben sondern in meiner Home-Partition also z.B. in "~/Datenbank". Warum? Zu was habe ich ein Home-Verzeichnis und ich denke das ist eines der genialen Sicherheitsfeatures von Linux, dass so ein strikte Verzeichniszuordnung besteht. Außerdem hat das mit Backup-Strategien, Partitionszuteilungen usw. zu tun.
"~/Datenbank" hat zuerst einmal die Userzuordnung chef:chef, ist auch normal. In meinen Augen wäre es jetzt logisch, wenn jetzt umgekehrt der User mysql der Gruppe chef beitreten würde, wen es schon einen eigenen User mysql geben muss. Dann noch in der my.cnf das Datenbankverzeichnis angepasst, mysqld neu gestartet und es müsste funktionieren. Aber weit gefehlt, es funktioniert nicht. Ich muss mir in mein Home-Verzeichnis ein Kuckucksei legen und dem Verzeichnis "~/Datenbank" und allen darin enthaltenen Dateien mit "chown mysql:mysql" einen fremden User zuweisen. Jetzt funktioniert es wieder da der User chef ja schon der Gruppe mysql beigetreten ist.
Und jetzt kommt VirtualBox ins Spiel.
Gehen wir noch mal zurück. Das Verzeichnis "~/Datenbank" ist "chef:chef" zugeordnet. Mit meinen mysqld habe ich also keinen Zugriff drauf. Das Verzeichnis "~/Datenbank" wird nun in VirtualBox als gemeinsamer Ordner mit meiner Virtuellen Maschine VMWinXPProf eingerichtet. In VMWinXPProf wird der gemeinsame Ordner auf den LW-Buchstaben sagen wir "G:\" gemounted. In der my.ini (in Win ist es nicht my.cnf) von mysqld auf der VM wird nun als Datenbankdir "G:\" angegeben und voila es funktioniert. D.h. ich kann mit meinen GUI's, die wie schon gesagt noch eine Weile nur auf Win funktionieren Daten manipulieren die auf dem Host liegen. Wenn ich also mein tägliches Backup von meinem Home-Dir mache sind die geänderten Daten eingeschlossen ohne das ich irgendwas von der VM auf den Host kopieren muss!!!
Um jetzt nicht jedesmal die VM starten zu müssen um auf die Schnelle ein paar Daten zu hinterfragen, das kann man vorübergehend auch mit ein paar SQL-Abfragen die man sich abspeichert machen, will ich nun, dass auch mysqld vom Host auf "~/Datenbank" zugreifen kann, das geht aber nur wenn, "~/Datenbank" mysql:mysql zugewiesen wird (siehe oben). Wenn ich das mache, funktioniert aber der Zugriff über die VM nicht mehr. Also muss doch die VM bzw. Virtualbox als Vertreter als User der Gruppe mysql beitreten genauso wie "chef", wage ich mal ganz kühn zu behaupten. Aber als was für ein User ist VirtualBox eingetragen. Ich habe bis jetzt noch nichts gefunden.
Das Problem wäre leicht zu lösen, wenn ich mysql dazu bringen könnte auf "~/Datenbank" zuzugreifen, auch wenn das Verzeichnis chef:chef gehört, was in meinen Augen eigentlich auch das normal Verhalten wäre.

Ergänzend möchte ich noch erwähnen dass diese Konstellation auf einem Rechner mit XP als Host einwandfrei funktioniert und innerhalb von einer halben Stunde zum Laufen gebracht werden kann.
Das Thema mit dem auotstart von mysqld verschieben wir mal auf später in einen anderen Thread, da hier auch mehrere Fragen auftauchen. Du kannst mir aber glauben, ich habe mich sehr intensiv mit den runleveln auseinandergesetzt

Gruß Walter

PS. Entschuldigung wenn ich manchmal etwas sarkastisch bin, aber man darf sicher hinterfragen was das alles manchmal soll. Wenn man das alles so kommentarlos hinnimmt nur weil es von Linux kommt und damit automatisch heilig ist......
Wer in meinem Beitrag einen Fehler findet, darf ihn behalten

5e4n

hat hier 2. Wohnsitz.

Beiträge: 442

Ubuntu: ---

Desktop: ---

Architektur: ---

  • Private Nachricht senden

4

Dienstag, 11. Januar 2011, 10:29

Hi Walter,

1. mal: bitte entschuldige die lange Wartezeit, hat etwas gedauert bis ich mich wieder ins Forum verirrt habe *unschuldigpfeif*

5e4n ist eine abänderung von Sean (ausgesprochen wie beim guten alten Sean Connery), meinem Vornamen... sowas passiert, wenn man eine Engländerin als Mutter hat :P

Wollte übrigens nicht behaupten, dass Du Dich nicht mit chown und Co auseinandergesetzt hast! Genau so wenig wollte ich behaupten, dass alles hoch und heilig ist, was mit Linux zu tun hat.
Ich behaupte lediglich, dass es sinnvoll ist, wie es aufgebaut ist. Die Situation, wie Du sie Dir aufgebaut hast, entspricht bei weitem nicht der Norm an Datenbankinstallationen, die mir bisher untergekommen sind (bitte nicht als Vorwurf oder Angriff auffassen, eher als simple Feststellung ;) )

Hab mir jetzt nochmal Deinen Beitrag durchgelesen und ich glaub ich kapier jetzt das Problem.

Allerdings bin ich hier jetzt auch überfragt, denn das geht mehr in Richtung VirtualBox wie in Richtung MySQL... und VirtualBox habe ich noch nie eingesetzt, sorry :(

Vielleicht ist das Problem lösbar, wenn der VirtualBox-User (virtualbox o.Ä.?) der Gruppe mysql hinzugefügt wird... ich weiss es leider nicht.

Hoffentlich kann uns hier noch jemand Auskunft geben, denn die Lösung für dieses Problem würde mich auch sehr interessieren!

Walter_vdV

hat sich gut eingelebt.

  • »Walter_vdV« ist der Autor dieses Themas

Beiträge: 96

Ubuntu: 10.10

Architektur: 32-bit

  • Private Nachricht senden

5

Dienstag, 11. Januar 2011, 15:25

Hallo Sean (darf ich doch jetzt sagen ),
entschuldigen brauchst Du Dich nicht. Das ist jetzt auch nicht ein Thema, daß mir das Arbeiten verwehrt, sondern hauptsächlich auch wiederum der "Weiterbildung" bezüglich des Verständnisses für Linux dient. Die anderen OT-Themen im Beitrag waren auch keine Vorwürfe sondern nur Feststellungen wie ich Sie sehe. Die Zugriffsmöglichkeiten wie ich Sie geschildert habe und möchte, sind sicher nicht alltäglich aber auch nicht ungewöhnlich. Ich will nur auf MEINE Daten zugreifen so wie ich es will und diese Zugriffsmöglichkeiten habe ich auf anderen Betriebssystemen schon x-Mal praktiziert. Jetzt soll mir bitte keiner kommen, daß dies wieder geniales Sicherheitsfeature von Linux ist. MySQL hat selber so ein ausgeklügeltes Zugriffssystem auf die Daten, daß da nichts zusätzliches, wohlgemerkt Datenzugriff, aufgesetzt werden muss und das dieser eigene mysql-User den MySQL-Entwicklern vom Betriebssystem mehr oder weniger aufdoktriniert wurde, aber das ist nur eine Vermutung. VirtualBox ist definitiv nicht der Verursacher des Problems, da ja MySQL alle Rechte in meinem Home-Verzeichnis beansprucht. Außerdem gibt es keinen in irgendeiner Art Virtualbox-User, dem ich sagen kann, schließ dich der mysql-Gruppe an. Noch mal, in meinen Augen ist der eigene mysql-User simpler Unfug. MySQL ist ein Datenbankserver und Server ist eng verwandt mit Service, in diesem Fall ist das aber eine reine Service-Wüste. Ich hoffe auch, dass da noch jemand eine Lösung findet bzw. weiß. Anderweitig wäre halt die nächste Vorgehensweise von meiner VM aus den mysqld des Hosts anzusprechen, aber das wäre ja nur eine Kapitulation vor einem Diktator (und das liegt mir als Anarchist gar nicht ), außerdem habe ich da schon wieder Angst, was da für Hürden aufgebaut werden.

Gruß Walter
Wer in meinem Beitrag einen Fehler findet, darf ihn behalten

Walter_vdV

hat sich gut eingelebt.

  • »Walter_vdV« ist der Autor dieses Themas

Beiträge: 96

Ubuntu: 10.10

Architektur: 32-bit

  • Private Nachricht senden

6

Freitag, 14. Januar 2011, 13:50

So ich habe das Problem gelöst, obwohl ich noch einiges an der Benutzerverwaltung nicht kapiere. Sollte es jemanden interessieren wie ich es gemacht habe, schreibe ich gerne ein kleines HowTo.
Gruss Walter
Wer in meinem Beitrag einen Fehler findet, darf ihn behalten

5e4n

hat hier 2. Wohnsitz.

Beiträge: 442

Ubuntu: ---

Desktop: ---

Architektur: ---

  • Private Nachricht senden

7

Montag, 17. Januar 2011, 08:10

Hi Walter,

ich wüsste gerne wie Du das hingekriegt hast! Würde diese Situation in meiner Testumgebung gerne nachbauen :)

Gruss,
Sean

Walter_vdV

hat sich gut eingelebt.

  • »Walter_vdV« ist der Autor dieses Themas

Beiträge: 96

Ubuntu: 10.10

Architektur: 32-bit

  • Private Nachricht senden

8

Montag, 17. Januar 2011, 20:05

Hallo Sean,
also ob das, was ich da jetzt produziert habe, das Gelbe vom Ei ist? Ich glaube auch, dass man die bisher Ausgeführte auch mit denen im Folgenden beschriebenen Einstellung erreicht hätte.
Also zuerst habe ich das installierte MySQL aus der Paketverwaltung wieder runtergeschmissen und Xampp installiert (das ist aber nicht entscheidend).
Die Xampp-Variante nimmt als User "nobody" für die Verzeichnisse und Files. Für meine Datenbanken im meinem Home-Verzeichnis setze ich nun im mysql-Datenbankverzeichnis symbolische Links ( http://download.oracle.com/docs/cd/E1795…olic-links.html ). Die/das Verzeichnisse meiner Home-Datenbank haben mich als Besitzer und benötigen definitiv die Rechte 777 und die Dateien 666. Und das ist eigentlich der Knackpunkt. Wenn ich die Rechte bei dem User mysql:mysql genauso gesetzt hätte, hätte es wahrscheinlich genauso funktioniert. Das diese Rechtevergabe im Linuxkontext sicher ist, wage ich zu bezweifeln, aber wie schon gesagt zur Zeit benutze nur ich und mein Goldfisch den PC und auch im Netz sind keine anderen User. Aber auch MySQL hat ja eine ausgeklügelte Rechtevergabe. Bei WinXPProf in der VM setze ich für den myqld eine symbolischen Link auf das gemountete Verzeichnis und voila ich habe von überall Zugriff auf meine Daten so wie ich mir das vorgestellt habe. Zugegeben noch ein bisschen geschummelt. Aus irgendwelchen unerklärlichen Gründen akzeptiert der mysqld unter Win bei mir gerade keine symbolischen Links (hat früher immer geklappt), aber das ist jetzt ein reines MySQL-Problem und kann man sicher auch noch lösen. Ich habe das datadir komplett auf das gemountete LW gesetzt. Interessant in diesem Zusammenhang ist noch, dass in einem Konfigurationsfile von mysql und in einem vom Webserver der User "nobody" konfiguriert ist, also wäre auch im anderen Fall der User "mysql" irgendwie zu ändern. Aber da bin ich jetzt nur drauf gekommen wegen dem User nobody. Suche mal den Begriff "mysql" in mysql-Konfigurationsfiles, da kannst du gleich alles direkt durchforsten.
Sollte Dir noch was unklar sein, frage ruhig. Nur eine Bitte, irgendwelche Variationen zu testen geht gerade nicht. Ich habe gerade so viel Baustellen (siehe alle meine Fragen hier im Forum), da bin ich froh, wenn wieder ein Stück funktioniert. Ich werde dieses Thema für mich sicher noch mal aufgreifen, aber da müssen mir noch einige Sachen meines neuen Betriebssystems geläufiger sein. Wäre aber schön, wenn Du noch Variationen probieren und die Ergebnisse auch kundtun könntest
Gruss Walter
Wer in meinem Beitrag einen Fehler findet, darf ihn behalten