NTFS unter Linux
Vor allem in Dualboot-Umgebungen braucht man von Linux aus Zugriff auf NTFS-Dateisysteme. Lange Zeit war der Kernel-Treiber
ntfs mangels Unterstützung für Schreibzugriff keine wirkliche Alternative zum Userspace-Treiber NTFS-3G, was sich seit Kernel 5.14 mit ntfs3 geändert hat.
ntfs3 vs ntfs-3g
Abgesehen davon, dass NTFS-3G ein FUSE1-Treiber ist, gehen die beiden Treiber bei der Rechteverwaltung unterschiedliche Wege:
NTFS-3Gnutzt auf Wunsch die Windows-ACLs, und nutzt ein User-Mapping um Windows-Security-IDs (SIDs) mit Linux-Gruppen/Benutzern zu verknüpfen.ntfs3hingegen (und standardmäßig aber dazu inkompatibel auchNTFS-3G) verwendet von Windows getrennte Zugriffsberechtigungen, die in erweiterten Attributen gespeichert werden.
Gerade in einer Mehrbenutzer-Multiboot-Umgebung bietet sich NTFS-3G mit ACLs an, um jedem Benutzer sowohl unter Windows als auch unter Linux die gleichen Rechte zu gewähren.
Im folgenden gehe ich näher auf das User-Mapping und einige weitere Mount-Optionen für NTFS-3G ein.
NTFS-3G User-Mapping
Für die Zuordnung von Linux-Benutzern und -Gruppen zu Windows-SIDs muss die Datei \.NTFS-3G\UserMapping im Wurzelverzeichnis des
Dateisystems angelegt werden. Diese kann dann z.B. so aussehen (ohne die erste Zeile, und mit abschließendem Zeilenumbruch!):
# Linux-UID : Linux-GID : SID
1000::S-1-5-21-138981746-3230083771-4035192890-1001
:985:S-1-5-21-138981746-3230083771-4035192890-513
::S-1-5-21-138981746-3230083771-4035192890-10000
Mithilfe des folgenden PowerShell-Skriptes können die Benutzer/Gruppen und ihre SIDs unter Windows in eine CSV-Datei geschrieben werden.
Daraus kässt sich dann die UserMapping-Datei wie oben zu sehen zusammen basteln:
New-Item -Path "C:\" -Name ".NTFS-3G" -ItemType "Directory"
Set-Location "C:\.NTFS-3G"
# Benutzer
Get-LocalUser | Where-Object { $_.Enabled } | Select-Object -Property Name,SID | Export-Csv -Path WindowsLocalUsers.csv
# Gruppen
Get-LocalGroup | Select-Object -Property Name,SID | Export-Csv -Path WindowsLocalGroups.csv
Alternativ kann auch das Programm ntfsusermap genutzt werden.
Wichtige Mount-Optionen für NTFS-3G
| Option | Beschreibung |
|---|---|
hide_dot_files | Kennzeichnet neu erstellten Dateien mit „.“ am Anfang auch unter Windows als versteckt |
hide_hid_files | Unter Windows versteckte Dateien unter Linux ebenfalls ausblenden |
inherit | Unterordner und Dateien „erben“ wie unter Windows die Berechtigungen des Elternordners |
streams_interface=xattr | Dateistreams als erweiterte Attribute |
windows_names | Erzwingt mit Windows kompatible Dateinamen. NTFS unterstützt theoretisch alle Zeichen in Dateinamen, nur kann Windows auf diese Dateien dann nicht mehr zugreifen |
Siehe dazu auch meinen Blogpost „Windows-Systemordner in Linux-Dateimanagern ausblenden: .hidden“.
Filesystem in USErspace ↩︎