Bug 21529 - Berechtigungen setzen beim Anlegen von Festplatten-Images
Berechtigungen setzen beim Anlegen von Festplatten-Images
Status: CLOSED WONTFIX
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 2.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-02-09 16:35 CET by Andreas Büsching
Modified: 2023-06-28 10:46 CEST (History)
5 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2011-02-09 16:35:18 CET
Die Festplatten-Images werden immer mit den Berechtigungen 0700 angelegt. Das ist in manchen Umgebungen eventuell nicht gewünscht, beispielsweise wenn die kvm Prozesse mit besonderem Benutzer/Gruppe gestartet werden.
Comment 1 Andreas Büsching univentionstaff 2011-02-09 23:13:42 CET
Es können jetzt die UCR-Variablen

uvmm/volume/permissions/(mode|owner|group) gesetzt werden um die Brechtigungen zu beeinflussen.

ChangeLog-Eintrag wurde hinzugefügt
Comment 2 Moritz Muehlenhoff univentionstaff 2011-03-14 15:33:21 CET
Das funktionierte in meinen Tests nicht, weder auf Xen noch unter KVM:

root@xenslave:/var/lib/libvirt/images# ucr search volume
uvmm/volume/permissions/group: Domain Users
 Defines the group for new hard drive images that are created in a storage pool

uvmm/volume/permissions/mode: 444
 Defines the file mode permissions for new hard drive images that are created in a storage pool

uvmm/volume/permissions/owner: jmm
 Defines the owner for new hard drive images that are created in a storage pool

root@xenslave:/var/lib/libvirt/images# ls -lha
insgesamt 8,0K
drwxr-xr-x 2 root root 4,0K 14. Mär 15:22 .
drwxr-xr-x 5 root root 4,0K 14. Mär 07:59 ..
-rw------- 1 root root  20G 11. Mär 09:48 ucs24-02-0.raw
-rw------- 1 root root  20G 14. Mär 15:17 ucs24-04-0.raw
-rw------- 1 root root  20G 14. Mär 15:19 ucs24-05-0.raw
-rw------- 1 root root  20G 14. Mär 15:22 ucs24-06-0.raw
-rw------- 1 root root  20G 11. Mär 09:47 ucs24-foo-0.raw
-rw------- 1 root root  20G 10. Mär 15:08 ucs24-guppi-0.raw

root@kvm:/var/lib/libvirt/images# ls -lha
insgesamt 2,4G
drwxr-xr-x 2 root         root 4,0K 14. Mär 15:17 .
drwxr-xr-x 5 root         root 4,0K 14. Mär 09:00 ..
lrwxrwxrwx 1 root         root   18 14. Mär 15:00 lfödlfödlfd -> /tmp/lfödlfödlfd
-rw------- 1 libvirt-qemu kvm  1,2G 14. Mär 15:26 ucs24-01-0.qcow2
-rw------- 1 root         root 256K 14. Mär 13:26 ucs24-02-0.qcow2
-rw------- 1 root         root 256K 14. Mär 15:17 ucs24-03-0.qcow2
-rw------- 1 root         root 1,3G 14. Mär 14:42 ucs24-64-20 (Neu)-0.qcow2
-rw------- 1 root         root 256K 14. Mär 13:33 w2k8-03-0.qcow2

Der Changelog-Eintrag sollte auch überarbeitet werden, statt "können jetzt per UCR-Variablen gesetzt werden" sollten dort auch die Variablen aufgeführt werden.
Comment 3 Andreas Büsching univentionstaff 2011-03-21 17:02:27 CET
Bei mir hat das funktioniert. Allerdings sind ein paar Dinge zu beachten, die ich in der Doku noch einmal hervorgehoben habe:

- owner und group als numerische ID
- permissions sind Oktal (führende 0 ist nicht notwendig)
- uvmmd muss neu gestartet werden

ChangeLog-Eintrag ist angepasst
Comment 4 Moritz Muehlenhoff univentionstaff 2011-03-24 09:56:55 CET
Ändere ich die Berechtigungen, werden die Image-Dateien zwar korrekt angelegt, das Starten einer erzeugten VM schlägt dann aber fehl, was die Berechtigungen wieder zurücksetzt:

root@kvm:/var/lib/libvirt/images# ucr search --brief volume
uvmm/volume/permissions/group: 5001
uvmm/volume/permissions/mode: 444
uvmm/volume/permissions/owner: 2005

Die Berechtigungen nach dem Anlegen:

root@kvm:/var/lib/libvirt/images# ls -lha ucs24-24-0.qcow2
-r--r--r-- 1 jmm Domain Users 193K 24. Mär 09:49 ucs24-24-0.qcow2

Die Berechtigungen nach dem Start der VM:

root@kvm:/var/lib/libvirt/images# ls -lha ucs24-24-0.qcow2
-r--r--r-- 1 root root 193K 24. Mär 09:49 ucs24-24-0.qcow2

Folgender Fehler wird in die daemon-errors geloggt:

libvir: QEMU error : Domain not found: no domain with matching name 'ucs24-23'
libvir: Storage error : Storage volume not found: no storage vol with matching path
libvir: Storage error : Storage volume not found: no storage vol with matching name 'ucs24-23-0.qcow2'
libvir: QEMU error : internal error process exited while connecting to monitor: kvm.bin: -drive file=/var/lib/libvirt/images/ucs24-23-0.qcow2,if=none,id=drive-virtio-disk0,boot=on,format=qcow2: could not open disk image /var/lib/libvirt/images/ucs24-23-0.qcow2: Permission denied
Comment 5 Andreas Büsching univentionstaff 2011-03-24 14:29:26 CET
(In reply to comment #4)
> Ändere ich die Berechtigungen, werden die Image-Dateien zwar korrekt angelegt,
> das Starten einer erzeugten VM schlägt dann aber fehl, was die Berechtigungen
> wieder zurücksetzt:
> 
> root@kvm:/var/lib/libvirt/images# ucr search --brief volume
> uvmm/volume/permissions/group: 5001
> uvmm/volume/permissions/mode: 444
> uvmm/volume/permissions/owner: 2005
> 
> Die Berechtigungen nach dem Anlegen:
> 
> root@kvm:/var/lib/libvirt/images# ls -lha ucs24-24-0.qcow2
> -r--r--r-- 1 jmm Domain Users 193K 24. Mär 09:49 ucs24-24-0.qcow2
> 
> Die Berechtigungen nach dem Start der VM:
> 
> root@kvm:/var/lib/libvirt/images# ls -lha ucs24-24-0.qcow2
> -r--r--r-- 1 root root 193K 24. Mär 09:49 ucs24-24-0.qcow2

Das liegt daran, dass die Berechtigungen entsprechen des kvm-Prozessbesitzers geändert werden

> Folgender Fehler wird in die daemon-errors geloggt:
> 
> libvir: QEMU error : Domain not found: no domain with matching name 'ucs24-23'
> libvir: Storage error : Storage volume not found: no storage vol with matching
> path
> libvir: Storage error : Storage volume not found: no storage vol with matching
> name 'ucs24-23-0.qcow2'
> libvir: QEMU error : internal error process exited while connecting to monitor:
> kvm.bin: -drive
> file=/var/lib/libvirt/images/ucs24-23-0.qcow2,if=none,id=drive-virtio-disk0,boot=on,format=qcow2:
> could not open disk image /var/lib/libvirt/images/ucs24-23-0.qcow2: Permission
> denied

Das ist ein anderes Images. Ist das eine Ableitung? Oder gehört die Fehlermeldung woanders zu?

Wenn die Berechtigung des abgeleiteten Image nicht mit dem Master übereinstimmen kommt es zu solchen Fehlern. Auch wenn der kvm-Prozessbestizer auf eines der Images nicht zugreifen kann.
Comment 6 Stefan Gohmann univentionstaff 2011-03-25 16:06:03 CET
Ich habe den Changelog Eintrag zunächst wieder entfernt. Es sollte nochmal geprüft werden, was genau das Ziel ist.
Comment 7 Andreas Büsching univentionstaff 2011-03-25 17:08:52 CET
(In reply to comment #6)
> Ich habe den Changelog Eintrag zunächst wieder entfernt. Es sollte nochmal
> geprüft werden, was genau das Ziel ist.

Das wird beispielsweise bei unserer Testumgebung eingesetzt, damit alle Nutzer auf die Instanzen zugreifen können. Dafür gehören die Master Images einer Gruppe X. Abgeleiteten Images müssen entsprechende Berechtigungen haben (auch der Gruppe X gehören), damit die Instanzen gestartet werden können.
Comment 8 Stefan Gohmann univentionstaff 2011-03-28 07:12:21 CEST
(In reply to comment #7)
> (In reply to comment #6)
> > Ich habe den Changelog Eintrag zunächst wieder entfernt. Es sollte nochmal
> > geprüft werden, was genau das Ziel ist.
> 
> Das wird beispielsweise bei unserer Testumgebung eingesetzt, damit alle Nutzer
> auf die Instanzen zugreifen können. Dafür gehören die Master Images einer
> Gruppe X. Abgeleiteten Images müssen entsprechende Berechtigungen haben (auch
> der Gruppe X gehören), damit die Instanzen gestartet werden können.

Aber wenn die Benutzer per UMC darauf zugreifen, dann sind sie root und per sudo virsh geht es auch direkt. Gibt es noch mehr Vorteile?
Comment 9 Andreas Büsching univentionstaff 2011-03-28 09:46:54 CEST
(In reply to comment #8)
> Aber wenn die Benutzer per UMC darauf zugreifen, dann sind sie root und per
> sudo virsh geht es auch direkt. Gibt es noch mehr Vorteile?

Dabei werden die Maschinen aber nicht als root gestartet sondern normalerweise als libvirt-qemu:kvm. Der Benutzer könnte dann aber nicht auf die Master-Images zugreifen.

Es kann gut sein, dass das ausschließlich ein Problem hier bei uns ist wo Benutzer auf der Console auf die Dateien der Master-Images zugreifen können müssen.
Comment 10 Tim Petersen univentionstaff 2011-04-01 11:00:15 CEST
Vermutlich passt an dieser Stelle noch folgendes Phänomen, welches in der Testumgebung augfgetreten ist:

Aus irgendwelchen Gründen wurde im Laufe des Vormittages die Berechtigung auf ein Floppyimage auf Omar angepasst, so dass die Domäne keinen Schreibzugriff mehr hatte und Instanzen mit diesem Floppyimage auf Dacke und Odda nicht mehr gestartet werden konnten (permission denied).

Es steht zu vermuten, dass dort irgendwas von UVMM initiert wurde, da das Floppyimage morgens noch erfolgreich auf Dacke verwendet werden konnte.
Comment 11 Stefan Gohmann univentionstaff 2016-04-25 07:52:55 CEST
This issue has been filed against UCS 2.4.

UCS 2.4 is out of maintenance and many UCS components have vastly changed in
later releases. Thus, this issue is now being closed.

If this issue still occurs in newer UCS versions, please use "Clone this bug".
In this case please provide detailed information on how this issue is affecting
you.