staging.inyokaproject.org

Baustelle/UDisks2

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels UDisks2.

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo kB,

wie soll mit diesem Artikel bzw. dieser Baustelle im Moment umgegangen werden? Soll man das (vorerst) als Material-Sammlung betrachten, so dass ich z.B. Anmerkungen zu einigen Abschnitten direkt im Artikel ergänze oder willst Du - wie IMO normalerweise üblich - die Federführung über den Artikel behalten und man möge dann Vorschläge/Ergänzungen hier in die Diskussion einstellen?

Hintergrund der Frage ist, dass ich meine in den vergangenen Wochen zu udisks2 gesammelten Erkenntnisse aus meiner Perspektive gerne irgendwo abladen würde, bevor sie bei mir selbst wieder in den Hintergrund und früher oder später in Vergessenheit geraten.

Danke!

LG, Newubunti

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Newubunti schrieb:

[…] wie soll mit diesem Artikel bzw. dieser Baustelle im Moment umgegangen werden? Soll man das (vorerst) als Material-Sammlung betrachten, so dass ich z.B. Anmerkungen zu einigen Abschnitten direkt im Artikel ergänze oder willst Du - wie IMO normalerweise üblich - die Federführung über den Artikel behalten und man möge dann Vorschläge/Ergänzungen hier in die Diskussion einstellen?

Bitte nicht selbst in den Artikel eingreifen, sondern eigene Anmerkungen in die Diskussion einbringen. Der Artikel ist übrigens aus meiner Sicht fast fertig bis auf minimale Ergänzungen und ich wollte ihn sowieso mit meiner nächsten Fassung zur Diskussion vorstellen.

Das kann aber auch ab sofort gelten. Also: Die Diskussion ist hiermit eröffnet.

Ergänzungen bitte hier in der Diskussion vorstellen.

Ergebnisse von eigenen Tests ebenfalls hier vorstellen, aber bitte immer unter Angabe der benutzten Versionen von Ubuntu, des Kernels und von UDisks sowie welche Desktop-Umgebung man verwendet, da sonst Ergebnisse nicht nachvollziehbar und nicht bewertbar sind.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5232

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

trollsportverein schrieb:

In Jammy Jellyfish gibt es udisks2-vdo2 nicht mehr, in Mantic Minotaur gibt es auch udisks2-bcache und udisks2-z-ram2 nicht mehr.

Danke für den Hinweis. Ich habe den Abschnitt Installation überarbeitet.

Newubunti

(Themenstarter)

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo kB,

ganz grundsätzlich würde ich es für geschickter halten, dass Dienstprogramm udisksctl in einen eigenen Unterartikel auszulagern. Bei udisksctl würde ich auf alle Fälle auch udisksctl monitor erwähnen. Denn das ist hilfreich, um Probleme eingrenzen zu können. In der Regel wird man nämlich mehr oder minder Problem haben, wenn man als Administrator auf udisks zurückgreifen muss.

In der Einleitung könnte IMO noch deutlicher gemacht werden, dass

  • udisks in erster Linie ein Service samt API ist, der vornehmlich für Desktop-Umgebungsentwickler und darauf basierender Programme und eigentlich weniger für Endanwender gedacht ist und dass dieser udisks in der Regel erst bei Problemen wahrnimmt.

  • udisks vor allem für das Einbinden von "Wechselmedien" durch "normale" (unprivilegierte) Benutzer gedacht ist, denen die für das Einbinden normalerweise notwendigen Root-Rechte fehlen.

  • wenn immer möglich, die Konfiguration mittels genutzter Client-Anwendung vorgezogen werden sollte.

So habe ich das zumindest aus den verschiedenen man-Pages zu udisks herausgelesen.


Abschnitt Baustelle/UDisks2 (Abschnitt „Benutzung“):

Ich finde den Begriff "Benutzung" nicht so ganz passend. Ich würde es vielleicht eher als "In Erscheinung treten" bezeichnen wollen und dann passiert das aber auch nur, sofern der Vorgang Autorisierung erfordert. Der Endanwender benutzt ja udisks nicht direkt, sondern er benutzt die Client-Programme und die greifen dann per API oder libudisks2 auf udisksd zu bzw. verwenden es. Die Verwendung von udisks im Hintergrund bekommt der Anwender gar nicht mit und nicht bei allen Aktionen die letztlich durch udisks erledigt werden, ist eine Autorisierung erforderlich.

"Funktionsweise" könnte vielleicht auch noch besser passen als "Benutzung".

Die Einbindung eines Dateisystems erfordert immer Systemprivilegien. Bei der Benutzung von UDisks über ein grafisches Programm erfolgt deshalb eine Autorisierung per PolicyKit: ...

Da kommt IMO nicht deutlich genug heraus, dass die Gruppe der Dateisysteme mit HintSystem=0 für keine Benutzergruppe eine Autorisierung erfordern.

Mein Vorschlag wäre:

Die Einbindung eines Dateisystems erfordert immer Systemprivilegien. udisksd läuft daher mit Root-Rechten, so dass es eine durch normale Benutzer ohne diese Rechte veranlasste Einhänge-Operation erfolgreich ausführen kann. Damit normale Anwender nicht jedwede Partition mutwillig ein- oder aushängen können, unterscheidet udisks zwischen System- und Nicht-System-Partitionen (siehe auch #HintSystem):

  • Nicht-System-Partitionen können von allen Benutzern ohne Autorisierung eingebunden werden.

  • System-Partitionen erfordern eine Autorisierung per PolicyKit:

    • Jeder Benutzer in der Gruppe sudo gilt bereits durch diese Mitgliedschaft als hinreichend vertrauenswürdig und darf daher ohne Passwortabfrage das Subsystem benutzen.

    • Andere Benutzer werden PolicyKit zur Eingabe des Passwortes eines Administrators (d.h. ein Mitglied in der Gruppe sudo) aufgefordert.

    • Vorstehendes Standardverhalten kann individuell abweichend konfiguriert werden. Siehe Beispiel Systemschutz.


Abschnitt Baustelle/UDisks2 (Abschnitt „Konfiguration“):

Ich finde die Tabelle gelungen, würde aber die letzte Spalte "Aufgabe" weglassen. Und die Reduzierung auf drei Aufgaben finde ich nicht nötig. Es fehlt da ja auch schon das Konfigurieren hinischtlich HintSystem, das ja nicht nur rein kosmetische Gründe hat.

Man könnte überlegen, ob hier nicht eine Warnung sinnvoll ist, dass die Mount-Optionen nur mit Bedacht geändert werden sollten und das man dabei die Standard-Einstellungen kopieren und dann die Änderung hinzufügen oder Entfernen sollte. Ich finde gerade die Stelle nicht, aber irgendwo hatte ich meine ich gelesen, dass die Voreinstellungen von udisks von den Entwicklern mit Bedacht gewählt wurden auch hinsichtlich darauf, dass udisksd mit Root-Rechten läuft. Ich finde es gerade aber nicht mehr.


Abschnitt Baustelle/UDisks2 (Abschnitt „Fehler-durch-Mount-Option-user“)

Wenn man in der Datei fstab eine Zeile mit einer dieser Optionen für die Verwendung mit UDisks definiert, muss man auch diese Option zu allow hinzufügen, anderenfalls kann der Aufruf bei manchen Treibern fehlschlagen; dies ist jedenfalls bei ntfs-3g der Fall.

Ich hatte auch erst angenommen, dass es daran liegen könnte, aber ich habe versucht die Optionen user und users an verschiedenen Stellen in der /etc/udisks2/mount_options.conf hinzuzufügen und das hat bei ntfs-3g keine Auswirkung gehabt, d.h. ab Ubuntu 22.04 verursacht das Vorhandensein eine dieser Optionen eine Fehlermeldung von udisksd. Das gilt wohlgemerkt für die Situation, dass die Bedingungen aus dem ntfs-3g-Wiki nicht alle erfüllt sind.

Ein grundsätzliches Problem von udisks seit Version 2.9.X ist das aber nicht, weil das so nur im Zusammenspiel mit ntfs-3g auftritt.

Es gab von Ubuntu 20.04 nach Ubuntu 22.04 einen Wechsel von Fuse 2.X auf Fuse 3. ntfs-3g ist aber in allen derzeit aktuellen Ubuntu-Versionen mit fuse-lite 28 (was wahrscheinlich für 2.8 stehen soll) kompiliert. Ich könnte mir auch vorstellen, dass da die Ursache für das neu auftretende Fehlerbild liegen könnte.


Was mir noch fehlt:

  • udisks kommt mit vordefinierten PolKit-Actions, auflistbar unter anderem mittels pkaction | grep udisks. Die lassen sich bei Bedarf für eigene Polkit-Regeln verwenden. Damit lässt sich ab Ubuntu 23.10 die Autorisierung noch feiner steuern, als alleine mit HintSystem, weil PolKit-Regeln auf JavaScript-Basis verwendet werden können. Vor Ubuntu 23.10, ist das keine Option, weil da das Polkit-Regelwerk nicht fein genug konfiguriert werden kann.

LG, Newubunti

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Newubunti schrieb:

[…] ganz grundsätzlich würde ich es für geschickter halten, dass Dienstprogramm udisksctl in einen eigenen Unterartikel auszulagern.

Das ist weitgehend Geschmacksache. Ich sehe im Moment davon ab, schließe es aber für die Zukunft nicht aus. Priorität hat für mich, erst einmal eine gebrauchsfähige Version möglichst schnell ins Wiki zu bringen.

Bei udisksctl würde ich auf alle Fälle auch udisksctl monitor erwähnen. Denn das ist hilfreich, um Probleme eingrenzen zu können. In der Regel wird man nämlich mehr oder minder Problem haben, wenn man als Administrator auf udisks zurückgreifen muss.

Auch das kann man später problemlos hinzufügen. Mich hat dieser Monitor nicht überzeugt.

In der Einleitung könnte IMO noch deutlicher gemacht werden, dass

  • udisks in erster Linie ein Service samt API ist, der vornehmlich für Desktop-Umgebungsentwickler und darauf basierender Programme und eigentlich weniger für Endanwender gedacht ist und dass dieser udisks in der Regel erst bei Problemen wahrnimmt.

  • udisks vor allem für das Einbinden von "Wechselmedien" durch "normale" (unprivilegierte) Benutzer gedacht ist, denen die für das Einbinden normalerweise notwendigen Root-Rechte fehlen.

  • wenn immer möglich, die Konfiguration mittels genutzter Client-Anwendung vorgezogen werden sollte.

So habe ich das zumindest aus den verschiedenen man-Pages zu udisks herausgelesen.

Ich habe die Einleitung dementsprechend erweitert.


Abschnitt Baustelle/UDisks2 (Abschnitt „Benutzung“):

Ich finde den Begriff "Benutzung" nicht so ganz passend. […] "Funktionsweise" könnte vielleicht auch noch besser passen als "Benutzung". […]

In neuer Fassung berücksichtigt.


Abschnitt Baustelle/UDisks2 (Abschnitt „Konfiguration“):

Ich finde die Tabelle gelungen, würde aber die letzte Spalte "Aufgabe" weglassen. Und die Reduzierung auf drei Aufgaben finde ich nicht nötig. Es fehlt da ja auch schon das Konfigurieren hinischtlich HintSystem, das ja nicht nur rein kosmetische Gründe hat.

Es handelt sich nicht um 3 einzelne Aufgaben, sondern um 3 Klassen von Aufgaben. Hintsystem gehört zur Klasse 3, deren Beschreibung ich allerdings erweitert habe, damit das auch zweifelsfrei hier zugeordnet wird.

Da nicht jede Konfigurationsaufgabe mit jeder Methode bzw. auf jeder Ebene lösbar ist, halte ich Spalte „Aufgabe“ für hilfreich. Sie enthält nützliche Wegweise in diesem durchaus unübersichtlich erscheinenden Konfigurationsdschungel.

Man könnte überlegen, ob hier nicht eine Warnung sinnvoll ist, dass die Mount-Optionen nur mit Bedacht geändert werden sollten und das man dabei die Standard-Einstellungen kopieren und dann die Änderung hinzufügen oder Entfernen sollte. Ich finde gerade die Stelle nicht, aber irgendwo hatte ich meine ich gelesen, dass die Voreinstellungen von udisks von den Entwicklern mit Bedacht gewählt wurden auch hinsichtlich darauf, dass udisksd mit Root-Rechten läuft. Ich finde es gerade aber nicht mehr.

Getan.


Abschnitt Baustelle/UDisks2 (Abschnitt „Fehler-durch-Mount-Option-user“)

Wenn man in der Datei fstab eine Zeile mit einer dieser Optionen für die Verwendung mit UDisks definiert, muss man auch diese Option zu allow hinzufügen, anderenfalls kann der Aufruf bei manchen Treibern fehlschlagen; dies ist jedenfalls bei ntfs-3g der Fall.

Ich hatte auch erst angenommen, dass es daran liegen könnte, aber ich habe versucht die Optionen user und users an verschiedenen Stellen in der /etc/udisks2/mount_options.conf hinzuzufügen und das hat bei ntfs-3g keine Auswirkung gehabt, d.h. ab Ubuntu 22.04 verursacht das Vorhandensein eine dieser Optionen eine Fehlermeldung von udisksd. Das gilt wohlgemerkt für die Situation, dass die Bedingungen aus dem ntfs-3g-Wiki nicht alle erfüllt sind.

Ein grundsätzliches Problem von udisks seit Version 2.9.X ist das aber nicht, weil das so nur im Zusammenspiel mit ntfs-3g auftritt.

Keine Änderung an dieser Stelle. Es gibt jedenfalls merkwürdige, manchmal geisterhafte oder aus anderen Gründen teilweise unverstandene Effekte mit user in Kombination mit ntfs-3g. In diesem Artikel ist ein Hinweis auf die Fachartikel sinnvoll, muss aber hier auch ausreichen. Diskussion an bekannter anderer Stelle.

Es gab von Ubuntu 20.04 nach Ubuntu 22.04 einen Wechsel von Fuse 2.X auf Fuse 3. ntfs-3g ist aber in allen derzeit aktuellen Ubuntu-Versionen mit fuse-lite 28 (was wahrscheinlich für 2.8 stehen soll) kompiliert. Ich könnte mir auch vorstellen, dass da die Ursache für das neu auftretende Fehlerbild liegen könnte.

Ein interessanter Hinweis und Ansatz! Allerdings sehe ich bezüglich dieses Artikels hieraus keinen Handlungsbedarf. Diskussion an bekannter anderer Stelle. (Ich habe festgestellt, dass focal nicht gleich focal ist. Ein System hat fuse in Version 2.9.9-3, ein anderes fuse3 in Version 3.9.0-2, beide sind 20.04 und haben Kernel 5.15. ???)


Was mir noch fehlt:

  • udisks kommt mit vordefinierten PolKit-Actions, auflistbar unter anderem mittels pkaction | grep udisks. Die lassen sich bei Bedarf für eigene Polkit-Regeln verwenden. […]

Mir fehlt das nicht und ich werde diesen Höllenschlund nicht betreten, weder in diesem Artikel noch an anderer Stelle und rate auch jedem an seinem Seelenfrieden interessierten UbuntuUsers-de-Wiki-Artikel-Autor ab, solche ketzerischen Gedanken in sein Hirn einzuladen!!!

Danke für Deine Anregungen!

Newubunti

(Themenstarter)

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

kB schrieb:

Keine Änderung an dieser Stelle. Es gibt jedenfalls merkwürdige, manchmal geisterhafte oder aus anderen Gründen teilweise unverstandene Effekte mit user in Kombination mit ntfs-3g.

Aber die Aussage vor dem zitierten Absatz,

Die Mount-Optionen user und users gehören standardmäßig nicht zu den per allow erlaubten Optionen und sind somit verboten.

stimmt so jedenfalls nicht. Bei exfat-fuse oder auch ntfs3 oder auch ext4 kann ich die Optionen user oder users in der /etc/fstab benutzen, ohne dass sie dabei in der /etc/udisks2/mount_options.conf in irgendeinem Abschnitt aufgeführt wären und udisks gibt bei diesen Treibern keine Fehlermeldung zurück.

ntfs-3g verursacht diese Probleme ab Ubuntu 22.04 (udisks 2.9.4) im weiteren Sinne. Ob man das jetzt udisks, ntfs-3g oder FUSE2/3 in die Schuhe schieben kann, würde ich abschließend zu diesem Zeitpunkt noch nicht beurteilen wollen. Allerdings spricht für mich derzeit vieles dafür, dass es an den eigentümlichen ntfs-3g-Einhänge-Bedingungen liegt.

  • udisks kommt mit vordefinierten PolKit-Actions, auflistbar unter anderem mittels pkaction | grep udisks. Die lassen sich bei Bedarf für eigene Polkit-Regeln verwenden. […]

Mir fehlt das nicht und ich werde diesen Höllenschlund nicht betreten, weder in diesem Artikel noch an anderer Stelle und rate auch jedem an seinem Seelenfrieden interessierten UbuntuUsers-de-Wiki-Artikel-Autor ab, solche ketzerischen Gedanken in sein Hirn einzuladen!!!

Naja, kB das ist ein ganz offizieller Bestandteil von udisks. Man sollte IMO wenigstens den Abschnitt im Refernzhandbuch verlinken, also z.B.:

  • Für Systemlaufwerke erfolgt bei der Benutzung von UDisks über ein grafisches Programm eine Autorisierung per PolicyKit (siehe im Detail zur Autorisierung auch Authorization Checks 🇬🇧 im Referenzhandbuch):

LG, Newubunti

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Newubunti schrieb:

[…]

Die Mount-Optionen user und users gehören standardmäßig nicht zu den per allow erlaubten Optionen und sind somit verboten.

stimmt so jedenfalls nicht. Bei exfat-fuse oder auch ntfs3 oder auch ext4 kann ich die Optionen user oder users in der /etc/fstab benutzen, ohne dass sie dabei in der /etc/udisks2/mount_options.conf in irgendeinem Abschnitt aufgeführt wären und udisks gibt bei diesen Treibern keine Fehlermeldung zurück.

Ich prüfe das noch. Die Optionen user & Co. sind jedenfalls keine eigentlichen Mount-Optionen, sondern sollen nur das Verhalten des Programms mount steuern. Von daher fehlt eigentlich jede Motivation, sie per UDisks nutzen zu wollen, außer dem Vorurteil, „das war schon immer so (bei mount, aber auch da stimmt es nicht mehr!)“.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

kB schrieb:

Newubunti schrieb:

[…]

Die Mount-Optionen user und users gehören standardmäßig nicht zu den per allow erlaubten Optionen und sind somit verboten.

stimmt so jedenfalls nicht. […]

Ich prüfe das noch. […]

In der Tat war die ursprüngliche Formulierung zu weit gefasst. Ich habe es jetzt im Artikel differenzierter formuliert.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Artikel ist nun im Wiki. Danke für die Diskussionsbeiträge.

Newubunti

(Themenstarter)

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo,

Abschnitt: UDisks2 (Abschnitt „mount“)

Mir ist gerade aufgefallen, dass die Option -t erfordert, dass das zu verwendende Dateisystem entweder in /proc/filesystems - dort sind nur die aktiven Kernel-Module gelistet - oder in der Datei /etc/filesystems aufgelistet sein muss:

jammy@jammyvm01:~$ udisksctl mount -b /dev/vdd1 -t exfat-fuse
Error mounting /dev/vdd1: GDBus.Error:org.freedesktop.UDisks2.Error.OptionNotPermitted: Requested filesystem type `exfat-fuse' is neither well-known nor in /proc/filesystems nor in /etc/filesystems
jammy@jammyvm01:~$  

Den entsprechenden Fehler erhalte ich ebenso für ntfs-3g. Also muss man - wenn man udisksctl mit der Option -t benutzen möchte, für FUSE-Treiber die /etc/filesystems anlegen, mit z.B. folgendem Inhalt:

exfat-fuse
ntfs-3g

LG, Newubunti

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Newubunti schrieb:

[…] aufgefallen, dass die Option -t erfordert, dass das zu verwendende Dateisystem entweder in /proc/filesystems […] oder in der Datei /etc/filesystems aufgelistet sein muss […]

Danke für den Hinweis. Mit der Datei /etc/filesystems werde ich weiter experimentieren. Möglicherweise ergibt sich daraus eine andere Möglichkeit zur Steuerung der Priorität für Treiber z.B. bei NTFS. Vermutlich wird daraus ein weiterer Abschnitt unter Problembehebung.

Für exfat-fuse müsste auch ein

sudo modprobe -v exfat-fuse 

abhelfen können und anstelle von ntfs-3g müsste ntfs bei udisksctl mount funktionieren.

Antworten |