staging.inyokaproject.org

Windows-Partitionen_einbinden/NTFS-3G

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Windows-Partitionen_einbinden/NTFS-3G.

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

Max-Ulrich_Farber schrieb:

Error opening read-only '/dev/sda7': Keine Berechtigung

Genau die meine ich auch!

Aber warum sollte denn mount auf die NTFS-3G-FAQ verweisen? Das kann doch nur ntfs-3g sein.

Max-Ulrich_Farber

(Themenstarter)
Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Sollte man meinen. Aber so sicher ist das nicht, mount weiß ja, mit welchem Treiber eingebunden werden sollte, und es kennt für diesen evtl. eine Anlauf-Adresse.

Trotzdem: Vielleicht hast auch du Recht. Aber man kann genau so gut umgekehrt argumentieren: Woher weiß denn NTFS-3G, woran der Test der Bedingungen (Zugriffsrechte auf /dev/sda7) gescheitert ist? Die hat doch mount ohne SUID geprüft, und es hat nicht geklappt. Das Hilfsprogramm /usr/bin/ntfs-3g läuft ja dann unter SUID, dem machen die Zugrifsrechte nichts aus. Ganz abgesehen davon wird es laut man mount gar nicht aufgerufen, wenn die Zugriffsrechte nicht ausreichen. Es merkt dann von dem Vorgang gar nichts, der wird bereits im Vorfeld abgebrochen.

Ich persönlich glaube nicht, dass du mit deiner Fehlermeldung bei Tuxera (tuxera/ntfs-3g/issues/103) an der richtigen Adresse bist. Ich glaube überhaupt nicht, dass es sich um einen Fehler im Programm handelt, ich finde nur die Erklärung und den "Fehlerbericht" (IMO von mount) beim Misslingen des Vorgangs etwas ungeschickt. Aber ich will dich nicht kritisieren. Wenn man eine Adresse nicht findet, dann darf man ja gerne auch mal bei den Nachbarn fragen, vielleicht können die einem weiterhelfen.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Es gibt wohl noch einen weiteren Einflussfaktor!

Ich habe hier unter 22.04 eine Situation, in der bei sonst gleichen Randbedingungen die Einhängung per udisksctl über eine Zeile in der fstab einmal gelingt und kurze Zeit später scheitert, noch etwas später wieder gelingt.

Fehlermeldung:

Error mounting system-managed device … Unknown error when mounting /media/tmp

Das Verhalten hat nichts mit HintSystem zu tun (das steht für dieses Blockgerät auf false) und erscheint mir erratisch.

So etwas ist besonders giftig bei Tests mit mehreren Einbindungsversuchen unter wechselnden Randbedingungen, da so ein erratisches Verhalten natürlich Fehlschlüsse provoziert.

Bevor dieses Verhalten bei mir aufgetreten ist, konnte ich noch feststellen:

  • ntfs-3g verhält sich bzgl. des Befehls mount ohne sudo unter allen Bedingungen gleich, egal ob man eine der Optionen user, users, nouser angibt oder nicht. Die Einbindung gelingt, wenn die 3 FUSE-Bedingungen erfüllt sind und scheitert sonst.

  • udisksctl war unabhängig von den FUSE-Bedingungen immer erfolgreich, bis dieser erratische Einfluss aufwachte.

  • mount führt zu Benutzer = 1000, udisksctl zu Benutzer = root für den aktiven Einbindepunkt.

Max-Ulrich_Farber

(Themenstarter)
Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

@kB:

Dieser "erratische Einflusws" stört mich natürlich auch ungemein, denn ohne ihn verläuft doch alles – wenigstens was /usr/bin/mount angeht (udisksctl habe ich noch nicht systematisch untersucht, aber Newubunti ist gerade dran, der kann das besser) – völlig erwartungsgemäß und korrekt.

Zwischen jedem neuen Einhängen wird ja wieder ausgehängt. Ist da vielleicht irgend etwas unkorrekt oder auch nur verschieden verlaufen? Oder kann es gar sein, dass die Partition versehentlich doppelt eingehängt war (wenigstens bei mount ist ja so etwas möglich), und dass sie deshalb noch gar nicht vollständig ausgehängt war? Vielleicht ist es sinnvoll, diese Spur weiter zu verfolgen. Beim Aushängen gibt es bestimmt noch mehr Fehlermöglichkeiten.

Irgendwie kann ich an ein völlig "erratisches" Verhalten (noch) nicht glauben.

P.S.:

Bei den "drei FUSE-Bedingungen" weiß jetzt natürlich jeder von uns, was gemeint ist. Doch diese Bedingungen (oder wenigstens die zwei wichtigsten, die Zugriffsrechte) gelten für mount als gewöhnlicher Benutzer ohne Root-Rechte oder SUID gemäß man mount ja immer, unabhängig ob über FUSE oder nicht. Sie haben mit FUSE direkt nichts zu tun. Könnten wir für sie deshalb vielleicht einen anderen Namen finden?

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

kB schrieb:

Ich habe hier unter 22.04 eine Situation, in der bei sonst gleichen Randbedingungen die Einhängung per udisksctl über eine Zeile in der fstab einmal gelingt und kurze Zeit später scheitert, noch etwas später wieder gelingt.

Du hattest doch schon mal eine Entdeckung gemacht, die Du später nicht reproduzieren konntest. Blöde Situation.

Fehlermeldung:

Error mounting system-managed device … Unknown error when mounting /media/tmp

Bei mir ist die ausführlicher:

Error mounting /dev/sda7: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Error mounting system-managed device /dev/sda7: Unknown error when mounting /media/Sicherung

  • udisksctl war unabhängig von den FUSE-Bedingungen immer erfolgreich, ...

Bei mir anders. Unter Vorliegen von users in der fstab ohne "NTFS-3G-Bedingungen" scheitert udisksctl (genau das war ja der Anlass für mein Support-Thema und meinen Fehlerbericht).

  • udisksctl zu Benutzer = root für den aktiven Einbindepunkt.

Bei mir anders und ich vermute, Du meinst "Besitzer". Unter Vorliegen von users in der fstab mit "NTFS-3G-Bedingungen" erhalte ich Besitzer = 1000.

Siehe: 9420561

Wenn ich die fstab geändert hatte, habe ich anschließend immer (meistens) systemctl daemon-reload ausgeführt, weil manchmal ein entsprechender Warnhinweis kam. Das könnte vielleicht Einfluss auf das erratische Verhalten haben, zumindest bei udisksctl.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Max-Ulrich_Farber schrieb:

[…] Zwischen jedem neuen Einhängen wird ja wieder ausgehängt. […]

Ja, mein Skript macht das. Vielleicht habe ich für den nächsten Einbindeversuch nicht lange genug abgewartet. Ich habe jetzt die Wartezeit verlängert und hoffe so auf reproduierbare Resultate.

Irgendwie kann ich an ein völlig "erratisches" Verhalten (noch) nicht glauben.

Ich hoffe, dass sich meine Vermutung als falsch erweist. Bisher ist es „schwach“ erratisch, d.h. es lauft lange Zeit, jedenfalls für mehrere Aufrufe des Skripts stabil und ändert sich dann plötzlich, bleibt dann wieder anders stabil. Möglicherweise erschöpft sich irgendeine intere Ressource, für den Beobachter sieht es aus wie Zufall.

[…] Bei den "drei FUSE-Bedingungen" weiß jetzt natürlich jeder von uns, was gemeint ist. Doch diese Bedingungen (oder wenigstens die zwei wichtigsten, die Zugriffsrechte) gelten für mount als gewöhnlicher Benutzer ohne Root-Rechte oder SUID gemäß man mount ja immer, unabhängig ob über FUSE oder nicht.

Das steht so in der Manpage von mount? Möglicherweise habe ich etwas verpasst, jedenfalls finde ich nichts dergleichen. Gib mir bitte mal ein Stichwort, wonach ich suchen lassen kann.

Sie haben mit FUSE direkt nichts zu tun.

Davon bin ich noch nicht überzeugt.

Max-Ulrich_Farber

(Themenstarter)
Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

UlfZibis schrieb:

Bei mir anders. Unter Vorliegen von users in der fstab ohne "NTFS-3G-Bedingungen" scheitert udisksctl (genau das war ja der Anlass für mein Support-Thema und meinen Fehlerbericht).

Das würde nach meinem (unvollständigen) Verständnis doch heißen, dass da /usr/bin/mount ausgeführt wurde. Hier ist nun Newubunti mit strace gefragt! – Ist es denkbar, dass udisksctl ohne fstab-Zeile mit seinen eigenen hardcodierten bzw. über udisksctl.inf veränderten Bedingungen das Hilfsprogramm /usr/sbin/ntfs-3g direkt aufruft (das geht ja wegen SUID immer), aber beim Vorliegen der Zeile diese mittels usr/bin/mount ausführt? Dies müsste dann auf jeden Fall scheitern, denn dann lehnt ja ntfs-3g wegen users ab.

Bei Kernel-Moduln gibt es allerdings kein Hilfsprogramm, das direkt aufgerufen werden kann. Aber an dieser Stelle stünde dann wohl eine eigene, von mount unabhängige Einbind-Routine von udisks2, und der Rest wäre genau gleich. – Alles dies ist bis jetzt aber nur Spekulation; über aussagekräftige Beobachtungen verfüge ich nicht. Newubunti, was sagt denn strace?

Wenn das stimmen sollte (??), dann wäre ja interessant, ob die Fehlermeldung erscheint so wie bei mount mit Root-Rechten oder so wie bei mount ohne Root-Rechte. Ich könnte mir nämlich sogar vorstellen, dass sich udisksctl gar keine Root-Rechte verschafft, denn ohne fstab-Zeile braucht es ja keine, weil es die Berechtigungs-Kontrollen von mount umschifft, und mit Zeile geht es im Prinzip ja auch ohne – wenn kein allzu vorsichtiges Programm wie ntfs-3g Einspruch erhebt. Das würde auch erklären, warum users wider Erwarten doch eine Rolle spielt.

Max-Ulrich_Farber

(Themenstarter)
Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

@kB:

Gib mir bitte mal ein Stichwort, wonach ich suchen lassen kann.

Ich meine das:

Note that mount is very strict about non-root users and all paths specified on command line are verified before fstab is parsed or a helper program is executed.

a helper program is executed (geschieht bei FUSE) ist nur eine Möglichkeit, before fstab is parsed geschieht aber auch sonst immer.

EDIT:

Damit wir uns ja nicht falsch verstehen: Ich meine folgende drei Bedingungen:

the ntfs-3g binary is set to setuid-root

the user has access right to the volume

the user has access right to the mount point

Die letzten beiden werden von mount bei non root users immer überprüft, und die erste gilt immer dann, wenn ein Hilfsprogramm aufgerufen wird, und das läuft dann meistens (aber wohl nicht notwendig) über FUSE.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Max-Ulrich_Farber schrieb:

[…] Ich könnte mir nämlich sogar vorstellen, dass sich udisksctl gar keine Root-Rechte verschafft

Das Programm udisksctl verschafft sich niemals Root-Rechte, denn für das, was es tut, benötigt es keine. Alles was es macht ist einen Auftrag per System-D-Bus an den Dienst udisksd zu schicken.

Der DAEMON udisksd verschafft sich auch niemals Root-Rechte, denn er läuft bereits als root und hat daher alles, was er braucht. Die Frage ist, wie er diese Rechte benutzt oder auch nicht benutzt.

Offenbar ist es so, dass wenn er eine Option user oder users für ein FUSE-Programm in der fstab findet, er dann den Einbindeprozess auch als normaler Benutzer startet. Dann muss das Helfer-Programm (also /bin/ntfs-3g in unserem Fall) dafür sorgen, die FUSE-Bedingungen zu erfüllen oder sterben.

Ohne eine solche Option startet udisksd den EInbindeprozess als root. Dann kann es nicht mehr an den FUSE-Bedingungen scheitern, egal ob diese erfüllt sind oder nicht.

ntfs-3g ist es völlig egal, ob es mit oder ohne Option user aufgerufen wird.

Das lese ich jedenfalls aus meinen Protokollen heraus.

mount hingegen startet nach Manpage das Helferprogramm als normalen Benutzer, wenn es ein FUSE-Programm findet, unabhängig davon, ob user/users angegeben ist (Das war früher anders!). Und wieder muss das Helferprogramm für die Einhaltung der FUSE-Bedingungen sorgen oder sterben und wiederum ist ntfs-3g es völlig egal, ob es mit oder ohne Option user aufgerufen wird.

Eigentlich ist doch bei FUSE-Programmen alles gut, wenn man die Option user & Co. vermeidet. Wer aus der fstab heraus beim Start ntfs-3g verwenden will, muss halt die 3 Bedingungen erfüllen. Wem das unzumutbar erscheint, kann ntfs3 verwenden oder erkunden, ob er mit systemd-mount besser fährt. Zum Einbinden nach dem Start gibt es udisksctl oder GUI-Programme.

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

Max-Ulrich_Farber schrieb:

Sollte man meinen. Aber so sicher ist das nicht, mount weiß ja, mit welchem Treiber eingebunden werden sollte, und es kennt für diesen evtl. eine Anlauf-Adresse.

Trotzdem: Vielleicht hast auch du Recht.

Zur Unterstützung in "Glaubensfragen" mal direkt per ntfs-3g:

ich@T500:~$ sudoedit /etc/fstab
ich@T500:~$ cat /etc/fstab | grep Sicherung
# /media/Sicherung was on /dev/sda7 during installation
UUID=2510AA16624BB80C   /media/Sicherung        ntfs    defaults,noauto,users,windows_names,hide_dot_files      0       0
ich@T500:~$ systemctl daemon-reload
ich@T500:~$ ntfs-3g -v /media/Sicherung
ntfs-3g: No mountpoint is specified.

ntfs-3g 2021.8.22 integrated FUSE 28 - Third Generation NTFS Driver
		Configuration type 7, XATTRS are on, POSIX ACLS are on

Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2021 Jean-Pierre Andre
Copyright (C) 2009-2020 Erik Larsson

Usage:    ntfs-3g [-o option[,...]] <device|image_file> <mount_point>

Options:  ro (read-only mount), windows_names, uid=, gid=,
          umask=, fmask=, dmask=, streams_interface=.
          Please see the details in the manual (type: man ntfs-3g).

Example: ntfs-3g /dev/sda1 /mnt/windows

Plugin path: /usr/lib/x86_64-linux-gnu/ntfs-3g

News, support and information:  https://github.com/tuxera/ntfs-3g/
ich@T500:~$ ntfs-3g /media/Sicherung
ntfs-3g: No mountpoint is specified.

ntfs-3g 2021.8.22 integrated FUSE 28 - Third Generation NTFS Driver
		Configuration type 7, XATTRS are on, POSIX ACLS are on

Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2021 Jean-Pierre Andre
Copyright (C) 2009-2020 Erik Larsson

Usage:    ntfs-3g [-o option[,...]] <device|image_file> <mount_point>

Options:  ro (read-only mount), windows_names, uid=, gid=,
          umask=, fmask=, dmask=, streams_interface=.
          Please see the details in the manual (type: man ntfs-3g).

Example: ntfs-3g /dev/sda1 /mnt/windows

Plugin path: /usr/lib/x86_64-linux-gnu/ntfs-3g

News, support and information:  https://github.com/tuxera/ntfs-3g/
ich@T500:~$ mount | grep Sicherung
ich@T500:~$ ntfs-3g -v /dev/sda7 /media/Sicherung
Error opening read-only '/dev/sda7': Keine Berechtigung
Failed to mount '/dev/sda7': Keine Berechtigung
Please check '/dev/sda7' and the ntfs-3g binary permissions,
and the mounting user ID. More explanation is provided at
https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ
ich@T500:~$ mount | grep Sicherung
ich@T500:~$ 

Da sieht man auch, dass sowohl mount als auch ntfs-3g die fstab auswerten, nur anscheinend anders, denn ntfs-3g verlangt die explizite Angabe des /dev/... vor dem Mountpoint.

Weitere evtl. interessante Ergebnisse (direkt in Anschluss an obere Befehle):

ich@T500:~$ sudo chmod u+s /usr/bin/ntfs-3g
ich@T500:~$ sudo chmod 777 /media/Sicherung
ich@T500:~$ sudo chmod 666 /dev/sda7
ich@T500:~$ ntfs-3g -v /dev/sda7 /media/Sicherung
ich@T500:~$ mount | grep Sicherung
/dev/sda7 on /media/Sicherung type fuseblk (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,allow_other,blksize=4096)
ich@T500:~$ umount /media/Sicherung
ich@T500:~$ sudo ntfs-3g -v /dev/sda7 /media/Sicherung
ich@T500:~$ mount | grep Sicherung
/dev/sda7 on /media/Sicherung type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
ich@T500:~$ umount /media/Sicherung
ich@T500:~$ sudo chmod u-s /usr/bin/ntfs-3g
ich@T500:~$ sudo chmod 755 /media/Sicherung
ich@T500:~$ sudo chmod 660 /dev/sda7
ich@T500:~$ sudo ntfs-3g -v /dev/sda7 /media/Sicherung
ich@T500:~$ mount | grep Sicherung
/dev/sda7 on /media/Sicherung type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
ich@T500:~$ umount /media/Sicherung
ich@T500:~$ sudoedit /etc/fstab
ich@T500:~$ cat /etc/fstab | grep Sicherung
# /media/Sicherung was on /dev/sda7 during installation
UUID=2510AA16624BB80C   /media/Sicherung        ntfs    defaults,noauto,windows_names,hide_dot_files      0       0
ich@T500:~$ systemctl daemon-reload

Aber man kann genau so gut umgekehrt argumentieren: Woher weiß denn NTFS-3G, woran der Test der Bedingungen (Zugriffsrechte auf /dev/sda7) gescheitert ist? Die hat doch mount ohne SUID geprüft,

??? mount hat doch immer SUID ❗

und es hat nicht geklappt. Das Hilfsprogramm /usr/bin/ntfs-3g läuft ja dann unter SUID, dem machen die Zugrifsrechte nichts aus.

Ist doch eher logisch, dass ntfs-3g die Prüfung nochmal durchführt ... nach deren Angaben in deren Doku.

Ganz abgesehen davon wird es laut man mount gar nicht aufgerufen, wenn die Zugriffsrechte nicht ausreichen. Es merkt dann von dem Vorgang gar nichts, der wird bereits im Vorfeld abgebrochen.

Das bezweifle ich, denn ich "glaube", dass die besprochene Fehlermeldung nur von ntfs-3g kommen kann.

Ich persönlich glaube nicht, dass du mit deiner Fehlermeldung bei Tuxera (tuxera/ntfs-3g/issues/103) an der richtigen Adresse bist. Ich glaube überhaupt nicht, dass es sich um einen Fehler im Programm handelt, ich finde nur die Erklärung und den "Fehlerbericht" (IMO von mount) beim Misslingen des Vorgangs etwas ungeschickt.

Aber dafür wäre Tuxera doch genau mindestens zuständig.

Aber ich will dich nicht kritisieren. Wenn man eine Adresse nicht findet, dann darf man ja gerne auch mal bei den Nachbarn fragen, vielleicht können die einem weiterhelfen.

Max-Ulrich_Farber schrieb:

Das würde nach meinem (unvollständigen) Verständnis doch heißen, dass da /usr/bin/mount ausgeführt wurde. Hier ist nun Newubunti mit strace gefragt! – Ist es denkbar, dass udisksctl ohne fstab-Zeile mit seinen eigenen hardcodierten bzw. über udisksctl.inf veränderten Bedingungen das Hilfsprogramm /usr/sbin/ntfs-3g direkt aufruft (das geht ja wegen SUID immer), aber beim Vorliegen der Zeile diese mittels usr/bin/mount ausführt? Dies müsste dann auf jeden Fall scheitern, denn dann lehnt ja ntfs-3g wegen users ab.

Interessante Theorie. Newubunti meinte ja, dass udisksd – angestoßen von udisksctl mount – das Programm mount (immer?) nicht bemühen würde, sondern selbst die fstab interpretiert und so komplett sein eigenes Ding dreht.

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo,

das sind die Randbedingungen des ersten Strace-Auszuges:

jammy@jammyvm01:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy
jammy@jammyvm01:~$ uname -a
Linux jammyvm01 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
jammy@jammyvm01:~$ cat /proc/version_signature 
Ubuntu 6.5.0-26.26~22.04.1-generic 6.5.13
jammy@jammyvm01:~$ id
uid=1000(jammy) gid=1000(jammy) Gruppen=1000(jammy),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),135(lxd),136(sambashare)
jammy@jammyvm01:~$ sudo blkid | grep /dev/vdb1
[sudo] Passwort f\u00fcr jammy: 
/dev/vdb1: LABEL="NTFSTEST" BLOCK_SIZE="512" UUID="362F9B1C209845D1" TYPE="ntfs" PARTLABEL="NTFSTEST" PARTUUID="1edbbb6a-6710-4d8e-869c-d6c82ec57e6c"
jammy@jammyvm01:~ 

Sonst ist alles Standard. Keine zusätzlichen Benutzer, udev-Regeln oder sonst irgend etwas.

Allerdings erfordert udisksctl bei Dateisystemtyp-Angabe bei Fuse-Treibern, dass dieser in der /etc/filesystems gelistet ist, deshalb noch

sudoedit /etc/filesystems 
ntfs-3g

Für den Strace wurde ausgeführt:

Im ersten Terminal-Fenster mittels sudo Beobachtung von udisksd:

sudo strace -f -tt -p $(pidof udisksd) -o /home/$USER/udisksd-ntfs-3g-strace.txt 

Im zweiten Terminal-Fenster Beobachtung des Prozesses udisksctl unter dem Benutzer jammy:

strace -f -tt -o udisksctl-jammy-ntfs-3g-strace.txt udisksctl mount -b /dev/vdb1 -t ntfs-3g 

Filterung der Strace-Auszüge:

udisksd-jammy-ntfs-3g-strace.txt

jammy@jammyvm01:~$ grep -Ei 'fstab|mount|fuse|ntfs|polkit' udisksd-jammy-ntfs-3g-strace.txt 
2681  12:40:23.465811 openat(AT_FDCWD, "/run/udisks2/mounted-fs", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
2681  12:40:23.466277 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
2681  12:40:23.466367 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 16
2681  12:40:23.466524 read(16, "# /etc/fstab: static file system"..., 4096) = 665
2681  12:40:23.470003 read(16, "ntfs-3g\nexfat-fuse\n", 19) = 19
2681  12:40:23.470178 openat(AT_FDCWD, "/etc/udisks2/mount_options.conf", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
2681  12:40:23.476532 access("/media/jammy/NTFSTEST", F_OK <unfinished ...>
2681  12:40:23.476691 mkdir("/media/jammy/NTFSTEST", 0700 <unfinished ...>
2681  12:40:23.489498 readlink("/media/jammy/NTFSTEST", 0x781da45fc970, 1023) = -1 EINVAL (Das Argument ist ung\u00fcltig)
2681  12:40:23.489693 newfstatat(AT_FDCWD, "/sbin/mount.ntfs-3g", {st_mode=S_IFREG|0755, st_size=162824, ...}, 0) = 0
2681  12:40:23.490478 newfstatat(AT_FDCWD, "/run/mount/utab", {st_mode=S_IFREG|0644, st_size=1070, ...}, AT_SYMLINK_NOFOLLOW) = 0
2681  12:40:23.490564 newfstatat(AT_FDCWD, "/run/mount/utab", {st_mode=S_IFREG|0644, st_size=1070, ...}, 0) = 0
2681  12:40:23.492821 access("/run/mount/utab", R_OK|W_OK) = 0
2682  12:40:23.495053 execve("/sbin/mount.ntfs-3g", ["/sbin/mount.ntfs-3g", "/dev/vdb1", "/media/jammy/NTFSTEST", "-o", "rw,nodev,nosuid,uhelper=udisks2"], 0x5ad00b2b80c0 /* 7 vars */) = 0
2682  12:40:23.501159 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libntfs-3g.so.89", O_RDONLY|O_CLOEXEC) = 3
2682  12:40:23.513134 openat(AT_FDCWD, "/proc/mounts", O_RDONLY|O_CLOEXEC) = 3
2682  12:40:23.516925 readlink("/fusectl", 0x7ffdbadca8f0, 1023) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
2682  12:40:23.520850 readlink("/gvfsd-fuse", 0x7ffdbadca8f0, 1023) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
2682  12:40:23.521197 newfstatat(AT_FDCWD, "/media/jammy/NTFSTEST", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
2682  12:40:23.521720 newfstatat(AT_FDCWD, "/dev/fuse", {st_mode=S_IFCHR|0666, st_rdev=makedev(0xa, 0xe5), ...}, 0) = 0
2682  12:40:23.523318 pread64(3, "\353R\220NTFS    \0\2\10\0\0\0\0\0\0\0\370\0\0?\0\20\0\0\10\0\0"..., 512, 0) = 512
2682  12:40:23.540547 openat(AT_FDCWD, "/dev/fuse", O_RDWR) = 4
2682  12:40:23.541310 newfstatat(AT_FDCWD, "/media/jammy/NTFSTEST", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
2682  12:40:23.541748 mount("/dev/vdb1", "/media/jammy/NTFSTEST", "fuseblk", MS_NOSUID|MS_NODEV, "allow_other,blksize=4096,fd=4,ro"...) = 0
582   12:40:23.543526 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.552195 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.552343 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.552741 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.554098 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.554274 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.554809 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
2681  12:40:23.555186 openat(AT_FDCWD, "/run/mount/utab.lock", O_RDONLY|O_CREAT|O_CLOEXEC, 0644 <unfinished ...>
582   12:40:23.555385 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
2681  12:40:23.555713 newfstatat(AT_FDCWD, "/run/mount/utab",  <unfinished ...>
2681  12:40:23.555867 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC <unfinished ...>
2681  12:40:23.557210 openat(AT_FDCWD, "/run/mount/utab.lock", O_RDONLY|O_CREAT|O_CLOEXEC, 0644 <unfinished ...>
2681  12:40:23.557587 newfstatat(AT_FDCWD, "/run/mount/utab",  <unfinished ...>
2681  12:40:23.557863 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC <unfinished ...>
2681  12:40:23.558738 openat(AT_FDCWD, "/run/mount/utab.n1wfKd", O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0600 <unfinished ...>
582   12:40:23.558928 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
2681  12:40:23.561612 newfstatat(AT_FDCWD, "/run/mount/utab",  <unfinished ...>
2681  12:40:23.562322 rename("/run/mount/utab.n1wfKd", "/run/mount/utab" <unfinished ...>
2681  12:40:23.562526 unlink("/run/mount/utab.n1wfKd" <unfinished ...>
2681  12:40:23.565462 openat(AT_FDCWD, "/var/lib/udisks2/mounted-fs-persistent.5WZQK2", O_RDWR|O_CREAT|O_EXCL, 0666 <unfinished ...>
2681  12:40:23.565788 newfstatat(AT_FDCWD, "/var/lib/udisks2/mounted-fs-persistent",  <unfinished ...>
2684  12:40:23.570890 sendto(5, "<29>Mar 23 12:40:23 ntfs-3g[2684"..., 72, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
582   12:40:23.571140 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.571610 readlink("/proc/582/mountinfo",  <unfinished ...>
2684  12:40:23.572003 sendto(5, "<29>Mar 23 12:40:23 ntfs-3g[2684"..., 94, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
582   12:40:23.573720 newfstatat(AT_FDCWD, "/run/mount/utab",  <unfinished ...>
582   12:40:23.573982 openat(AT_FDCWD, "/run/mount/utab", O_RDONLY|O_CLOEXEC <unfinished ...>
2681  12:40:23.574041 rename("/var/lib/udisks2/mounted-fs-persistent.5WZQK2", "/var/lib/udisks2/mounted-fs-persistent" <unfinished ...>
582   12:40:23.575604 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.575729 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 16
582   12:40:23.575893 read(16, "# /etc/fstab: static file system"..., 4096) = 665
2684  12:40:23.576232 sendto(5, "<29>Mar 23 12:40:23 ntfs-3g[2684"..., 84, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
2684  12:40:23.577511 sendto(5, "<29>Mar 23 12:40:23 ntfs-3g[2684"..., 149, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
2684  12:40:23.577973 sendto(5, "<29>Mar 23 12:40:23 ntfs-3g[2684"..., 92, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
582   12:40:23.578469 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.578621 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 16
582   12:40:23.579073 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
2681  12:40:23.579337 sendmsg(3, {msg_name={sa_family=AF_UNIX, sun_path="/run/systemd/journal/socket"}, msg_namelen=29, msg_iov=[{iov_base="MESSAGE", iov_len=7}, {iov_base="=", iov_len=1}, {iov_base="Mounted /dev/vdb1 at /media/jamm"..., iov_len=64}, {iov_base="\n", iov_len=1}, {iov_base="PRIORITY", iov_len=8}, {iov_base="=", iov_len=1}, {iov_base="5", iov_len=1}, {iov_base="\n", iov_len=1}, {iov_base="GLIB_DOMAIN", iov_len=11}, {iov_base="=", iov_len=1}, {iov_base="udisks", iov_len=6}, {iov_base="\n", iov_len=1}, {iov_base="THREAD_ID", iov_len=9}, {iov_base="=", iov_len=1}, {iov_base="2681", iov_len=4}, {iov_base="\n", iov_len=1}, {iov_base="CODE_FUNC", iov_len=9}, {iov_base="=", iov_len=1}, {iov_base="handle_mount", iov_len=12}, {iov_base="\n", iov_len=1}, {iov_base="CODE_FILE", iov_len=9}, {iov_base="=", iov_len=1}, {iov_base="udiskslinuxfilesystem.c:1168", iov_len=28}, {iov_base="\n", iov_len=1}], msg_iovlen=24, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
582   12:40:23.581671 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.583338 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.586886 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.587000 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.587230 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.596569 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.596661 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.596815 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.597130 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.598611 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.604657 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.604790 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.605107 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.608106 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.608245 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.608567 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.609336 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.610559 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.614442 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.614547 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.614712 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.615547 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.615736 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.616172 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.616832 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.619529 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.623120 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.623292 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.623652 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.624678 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.624826 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.625218 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.626480 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.628749 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.635082 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.635221 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.635572 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.636514 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.636641 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.637006 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.637413 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.639586 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.646630 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.646758 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.647077 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.648136 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.648261 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.651025 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.652154 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.653794 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.656832 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.656988 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.657354 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.658413 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.658578 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.658999 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.659588 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.662509 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.666445 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.666599 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.666961 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.667955 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.668155 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.668503 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.669615 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.671925 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.674737 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.674810 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.674949 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.675422 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.675492 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.675629 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.675885 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.677466 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.679006 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.679080 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.679236 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.679715 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.679785 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.679923 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.680226 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.681491 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.683093 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.683170 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.683317 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.683839 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.683910 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.684051 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.684709 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.685818 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.688581 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.688693 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.688839 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.689313 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.689381 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.689518 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.690142 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.691282 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.695127 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.695201 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.695340 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.695812 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.695881 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.696018 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.696311 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.697443 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.698878 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.698950 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.699088 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.699555 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.699624 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.699761 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.700380 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.701500 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.705123 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.705198 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.705339 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.705846 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.705933 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.706070 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.706665 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.707809 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.710419 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.710490 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.710628 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.711096 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.711165 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.711300 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.711885 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.713031 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.715649 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.715721 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.715859 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.716370 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.716439 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.716577 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.716828 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.718086 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.719856 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.719973 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.720199 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.720839 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.720953 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.721173 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.722051 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.723298 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.726499 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.726616 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.726795 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.727465 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.727583 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.727771 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.728953 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.732746 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.737211 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.737304 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.737452 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.738931 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.739013 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.739158 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.739485 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.771420 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.774674 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.774784 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.775742 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.776960 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.777157 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.777695 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.779382 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.786935 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.804301 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.804537 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.805118 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.806746 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.806959 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.807665 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.809569 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.831962 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY <unfinished ...>
582   12:40:23.837288 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.837562 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.838146 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.839801 newfstatat(AT_FDCWD, "/etc/fstab",  <unfinished ...>
582   12:40:23.840012 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC <unfinished ...>
582   12:40:23.840712 <... read resumed>"# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.842175 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.843742 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.847173 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.847267 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.847446 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.848183 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.848277 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.848462 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.848813 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.874217 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.876368 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.876463 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.876642 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.877361 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.877455 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.877631 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.878444 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.883032 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.892509 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.892662 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.892927 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.893738 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.893848 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.894086 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.894609 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.896564 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.908818 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.914291 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.914373 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.914529 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.915054 newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0664, st_size=665, ...}, 0) = 0
582   12:40:23.915131 openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
582   12:40:23.915281 read(17, "# /etc/fstab: static file system"..., 4096) = 665
582   12:40:23.915581 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
582   12:40:23.917191 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 17
698   12:40:23.919963 openat(AT_FDCWD, "/run/udisks2/mounted-fs", O_RDONLY <unfinished ...>
698   12:40:23.920635 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 16
698   12:40:23.941808 readlink("/media/jammy/NTFSTEST", 0x781da2aff0a0, 1023) = -1 EINVAL (Das Argument ist ung\u00fcltig)
698   12:40:23.941909 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 16
698   12:40:23.949819 openat(AT_FDCWD, "/run/udisks2/mounted-fs", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
698   12:40:23.950208 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 16
698   12:40:23.957644 readlink("/media/jammy/NTFSTEST", 0x781da2aff0a0, 1023) = -1 EINVAL (Das Argument ist ung\u00fcltig)
698   12:40:23.957718 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY) = 16
jammy@jammyvm01:~$ 
 

udisksctl-jammy-ntfs-3g-strace.txt

jammy@jammyvm01:~$ grep -Ei 'mount|ntfs-3g|fuse|polkit' udisksctl-jammy-ntfs-3g-strace.txt 
2678  12:40:23.314045 execve("/usr/bin/udisksctl", ["udisksctl", "mount", "-b", "/dev/vdb1", "-t", "ntfs-3g"], 0x7ffcb3715af8 /* 44 vars */) = 0
2678  12:40:23.316400 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpolkit-agent-1.so.0", O_RDONLY|O_CLOEXEC) = 3
2678  12:40:23.317348 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpolkit-gobject-1.so.0", O_RDONLY|O_CLOEXEC) = 3
2678  12:40:23.329218 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
2678  12:40:23.923381 write(1, "Mounted /dev/vdb1 at /media/jamm"..., 43) = 43
jammy@jammyvm01:~$ 

Anhand der Systemzeiten, kann man den Zeitablauf insgesamt ermitteln.

Wie ich schon mehrfach sagte und wie für mich auch nicht verwunderlich, instruiert udisksd /sbin/mount.ntfs-3g

LG, Newubunti

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Max-Ulrich_Farber schrieb:

[…]

Note that mount is very strict about non-root users and all paths specified on command line are verified before fstab is parsed or a helper program is executed.

a helper program is executed (geschieht bei FUSE) ist nur eine Möglichkeit, before fstab is parsed geschieht aber auch sonst immer.

Ich glaube, Du liest da etwas heraus, was da nicht steht. Ich lese nur, dass die Existenz von angegebenen Pfaden überprüft wird, bevor diese benutzt werden.

[…] Ich meine folgende drei Bedingungen:

the ntfs-3g binary is set to setuid-root

the user has access right to the volume

the user has access right to the mount point

Wir sind uns einig, dass wir über diese Bedingungen reden.

Die letzten beiden werden von mount bei non root users immer überprüft, und die erste gilt immer dann, wenn ein Hilfsprogramm aufgerufen wird, und das läuft dann meistens (aber wohl nicht notwendig) über FUSE.

Aus meiner Sicht sind diese drei Bedingungen notwendig, damit eine Einbindung per FUSE gelingen kann. Ich sehe aber keine Erfordernis, dass das Programm mount diese überprüfen muss und ich glaube auch nicht, dass es das macht. Jedenfalls finde ich in der Manpage keinerlei Hinweis darauf, vielleicht übersehe ich etwas.

Im Falle von ntfs-3g kommen ja die Meldungen über fehlende Berechtigungen von ntfs-3g und nicht von mount. Wenn mount bereits festgestellt hätte, dass diese fehlen, warum hat es dann ntfs-3g aufgerufen?

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

kB schrieb:

Im Falle von ntfs-3g kommen ja die Meldungen über fehlende Berechtigungen von ntfs-3g und nicht von mount. Wenn mount bereits festgestellt hätte, dass diese fehlen, warum hat es dann ntfs-3g aufgerufen?

weil,

Since util-linux 2.35, mount does not exit when user permissions are inadequate according to libmount’s internal security rules. Instead, it drops suid permissions and continues as regular non-root user. This behavior supports use-cases where root permissions are not necessary (e.g., fuse filesystems, user namespaces, etc).

Ich lese das so, dass mount in einem solchen Fall - fehlende Berechtigung des Benutzers, der das Einbinden initiiert - das SUID fallen lässt und dieses nicht weiter gibt aber grundsätzlich dann den Folgeprozess aufruft, aber eben zunächst mal unter dem Benutzer der das Einbinden initiiert. Wie es dort dann weiter gehandhabt wird, hängt davon ab, ob auf dem Folgeprozess selbst das SUID-Bit sitzt und etwaigen Bedingungen des Folgeprozesses.

Außerdem lese ich

This behavior supports use-cases where root permissions are not necessary (e.g., fuse filesystems, user namespaces, etc).

auch eher so, dass "fuse filesystems" keine Ausführung als root voraussetzen - was IMO gegen Deine Hypothese der "drei FUSE-Bedingungen" spricht bzw. sprechen könnte.

Wohlgemerkt: Das ist im Moment meine Leseart. D.h. nicht, dass ich unverrückbar damit Recht habe! Ich will damit nur deutlich machen, dass man das wie von mir auch verstehen kann.

LG, Newubunti

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

kB schrieb:

Offenbar ist es so, dass wenn er eine Option user oder users für ein FUSE-Programm in der fstab findet, er dann den Einbindeprozess auch als normaler Benutzer startet.

Der "Vertrag" der Option users lautet: "Erlaube dem normalen Benutzer das Ein- und Entbinden genau dieses Geräts."
(Das sollte auch "eigentlich" keinen Einfluss auf den Besitzer des Geräts haben, denn dafür sind ja die Optionen uid=,gid= zuständig.)
Durch die neue Regel für mount wird aber das Scheitern von ntfs-3g bei Standardkonfiguration – die man aus Sicherheitsgründen auch nicht anfassen sollte – vorbestimmt. So wird dann genau das Gegenteil von dem geliefert, was mit users "bestellt" wurde.
Durch die neue Regel für mount wird der Einbindevorgang nun als user ausgeführt, und die Nebenwirkung ist dann der ebenfalls nicht bestellte Besitzer 1000. Letzteres halte ich für durchaus hinterfragenswert. Per udisks mount läuft das allerdings auch so, wenn überflüssigerweise users gesetzt ist. Ansonsten: "Nicht gesetzte Optionen uid=,gid= führen immer zu rootals Besitzer." udisksd sollte user(s) also einfach ignorieren, auch nicht weiterleiten und Besitzverhältnisse gemäß uid=,gid= abhandeln, bzw. dies ntfs-3g überlassen, wie auch in Fall von User-Mapping, permissions, etc.
So jedenfalls meine bescheidene Meinung dazu.

Dann muss das Helfer-Programm (also /bin/ntfs-3g in unserem Fall) dafür sorgen, die FUSE-Bedingungen zu erfüllen oder sterben.

Hier sind wir wieder bei der Benennungsfrage, denn offensichtlich gehen dem FUSE-Programm exfat-fuse genau selbige Bedingungen am A.... vorbei. Möglicherweise ist das ein Sicherheitsrisiko, aber vielleicht wurde das aber auch genau untersucht und für nicht vorliegend befunden. Wenn letzteres zutrifft, müsste das auch für ntfs-3g gelten, und diese zickige Barriere aufzugeben, wäre dann der Job von Tuxera.

Max-Ulrich_Farber

(Themenstarter)
Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Alles scheint mir an der richtigen oder falschen Interpretation der Passage in man mount zu hängen.

@kB:

Ich glaube, Du liest da etwas heraus, was da nicht steht. Ich lese nur, dass die Existenz von angegebenen Pfaden überprüft wird, bevor diese benutzt werden.

Wenn es so ist, dann muss ich meine ganze Argumentation nochmal kritisch überprüfen. Denn das ändert sehr viel! Ich las heraus, dass auch überprüft wird, ob diese den Zugriff als gewöhnlicher Benutzer erlauben würden oder nicht. Das wäre aber sehr sinnvoll, denn nur wenn sie diesen erlauben, ist der ganze "neue Weg" von mount seit 2.35 überhaupt sinnvoll.

Wenn du Recht hast, dann wird der ganze "neue" Prozess auch dann ausgelöst, wenn die beiden Bedingungen nicht erfüllt sind. Und ntfs-3g kann diese ja nicht prüfen, weil es unter SUID läuft. Dann bleibt dafür wirklich nur FUSE übrig, und ich täusche mich gewaltig.

Um das zu testen, bräuchten wir einen Treiber, der nicht unter FUSE läuft und aber user ablehnt. Ich weiß leider keinen.

Bestechend an meiner "Lese-Version" finde ich halt, dass sich damit alles so einfach und kohärent erklären lässt. Deshalb will ich noch nicht gleich aufgeben, sondern diese nochmal zu verteidigen versuchen:

Die pure Existenz der Pfade zu überprüfen ist ja eigentlich trivial und ist wohl schon immer geschehen. Hier geht es nun um eine eigens aufgeführte "sehr strenge" Maßnahme, die zudem als einzige geeignet wäre, das "weit aufgerissene Tor" von mount als gewöhnlicher User ohne Root-Rechte etwas abzusichern: Ohne Root-Rechte und ohne SUID wird das Mounten nur dann in Angriff genommen, wenn die Zugriffsrechte das erlauben. FUSE hin oder her. Genau so würde ich es doch machen, wenn ich es zu entscheiden hätte.

Nun zu UlfZibis:

??? mount hat doch immer SUID ❗

Nein, jetzt aber nicht mehr! Das ist ja gerade der springende Punkt:

Instead, it drops suid permissions and continues as regular non-root user.

Das heißt eben gerade, es "lässt die SUID-Rechte fallen", mit anderen Worten "es verzichtet auf seine SUID-Rechte und macht als normaler Benutzer weiter" Und da steckt IMO der Schlüssel zum Verständnis. Und /usr/bin/mount tut das, usr/sbin/ntfs-3g aber nicht. Und dieser Prozess, der Verzicht auf SUID, findet eben genau dann statt, wenn user &Co in der Zeile steht, der Treiber dies aber ablehnt, weil es SUID für mount erfordert und damit die evtl. restriktiven Einstellungen bei /dev/… bzw. dem Mountpunkt umgehen kann. Das ist in sich völlig logisch.

Da sieht man auch, dass sowohl mount als auch ntfs-3g die fstab auswerten, nur anscheinend anders, denn ntfs-3g verlangt die explizite Angabe des /dev/... vor dem Mountpoint.

Das sehe ich daran nicht. Ich weiß ja nicht, ob in diesem Fall nun für ntfs-3g SUID gesetzt ist. Ohne SUID ist alles so zwangsläufig und normal. Die Fehlermeldung ist die gleiche wie diejenige, die mountliefern müsste, nämlich dass die Berechtigungen für /dev/… und den Mountpunkt nicht stimmen. Falls allerdings ntfs-3g unter SUID läuft, wundert mich die Fehlermeldung.

Allerdings sehe ich an dem Test ’was anderes, nämlich dass offenbar du Recht hast und die Fehlermeldung von ntfs-3g stammt.

Nun zur nächsten, längeren Testfolge: Diese beginnt so:

sudo chmod u+s /usr/bin/ntfs-3g

Darf ich daraus entnehmen, dass vorher SUID nicht gesetzt war? Dann passt ja alles.