michaelkbs
Goto Top

Besitzer und Gruppe einer Partition werden von udev geändert (LInux)

Hi, ich kämpfe hier mit udev, und komme mir vor, wie ein Drachentöter (die Köpfe wachsen nach). Vielleicht könnt ihr mir ja helfen.

Ich muss eine alte Datenbank auf einen neuen Server mit OpenSuse 11.4 umziehen. Sie funktioniert sogar, aber nur mit Klimmzügen:
Die Datenbank (Yardsql) braucht eine eigene Partition, die nicht gemountet und nicht formatiert wird, aber der Gruppe und dem User "yard" gehört.
Kein Problem, die Partition ist da und ein Script mit chgrp und chown erledigt den Rest... und dann kommt udev und überschreibt das mit root und disk.
Ich kriege die Datenbank also nur zum Laufen, wenn ich nach dem Booten udev kille und dann die Rechte für die Partition setze.
Das erscheint mir ein bisschen "suboptimal".

Ich habe in den udev-rules schon einiges ausprobiert:

99-yard.rules:

KERNEL=="sda3",SUBSYSTEM="block",DRIVER=="",ACTION=="add",GROUP="yard",OWNER="yard"

oder

KERNEL=="sda3",SUBSYSTEM="block",DRIVER=="",ACTION=="add",GROUP="yard",OWNER="yard",RUN+="meinscript.sh"

und in 81-mount.rules:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda3", GOTO="skip_mount"

Trotzdem gehört sda3 nach dem booten wieder root/disk.
meinscript.sh -> es gehört wieder Yard. Sekunden später schlägt udev wieder zu.

Ich kann vor den Start der Datenbank ein Skript setzen, was udev weghaut und dann die Rechte setzt, aber irgendwie kanns das nicht sein...
(Ein Wechsel der Datenbank kommt leider nicht in Betracht)

Danke im Voraus für jeden Tip
MichaelKBS

Content-Key: 172637

Url: https://administrator.de/contentid/172637

Printed on: April 19, 2024 at 17:04 o'clock

Member: dog
dog Sep 06, 2011 at 20:11:16 (UTC)
Goto Top
Du kannst bei udev mal eine Änderung simulieren um zu sehen, welche Programme ablaufen:

udevadm test --action=add /block/sda

(evtl. bei action auch change)
Member: MichaelKBS
MichaelKBS Sep 07, 2011 at 08:44:17 (UTC)
Goto Top
Danke, das hat mich auf die richtige Spur gebracht. Die yard-rule musste in ein anderes Verzeichnis (war in /etc/udev/rules, musste aber nach /lib/udev/rules.d.