Dateiberechtigungen für WSLFile Permissions for WSL

Auf dieser Seite wird erläutert, wie Linux-Dateiberechtigungen über das Windows-Subsystem für Linux interpretiert werden, insbesondere beim Zugriff auf Ressourcen innerhalb von Windows auf dem NT-Dateisystem.This page details how Linux file permissions are interpreted across the Windows Subsystem for Linux, especially when accessing resources inside of Windows on the NT file system. Diese Dokumentation setzt ein Grundwissen der Berechtigungsstruktur des Linux-Dateisystems und des Befehls „umask“ voraus.This documentation assumes a basic understanding of the Linux file system permissions structure and the umask command.

Beim Zugriff auf Windows-Dateien von WSL werden die Dateiberechtigungen entweder anhand der Windows-Berechtigungen berechnet oder aus Metadaten gelesen, die von WSL zur Datei hinzugefügt wurden.When accessing Windows files from WSL the file permissions are either calculated from Windows permissions, or are read from metadata that has been added to the file by WSL. Diese Metadaten sind standardmäßig nicht aktiviert.This metadata is not enabled by default.

WSL-Metadaten für Windows-DateienWSL metadata on Windows files

Wenn Metadaten als Bereitstellungsoption in WSL aktiviert sind, können erweiterte Attribute für Windows NT-Dateien hinzugefügt und interpretiert werden, um Linux-Dateisystemberechtigungen bereitzustellen.When metadata is enabled as a mount option in WSL, extended attributes on Windows NT files can be added and interpreted to supply Linux file system permissions.

WSL kann vier erweiterte NTFS-Attribute hinzufügen:WSL can add four NTFS extended attributes:

AttributnameAttribute Name BeschreibungDescription
$LXUID$LXUID Besitzer-ID des BenutzersUser Owner ID
$LXGID$LXGID Besitzer-ID der GruppeGroup Owner ID
$LXMOD$LXMOD Dateimodus (Dateisystem-Berechtigungsoktale und -typ, z. B.: 0777)File mode (File systems permission octals and type, e.g: 0777)
$LXDEV$LXDEV Gerät, falls es sich um eine Gerätedatei handeltDevice, if it is a device file

Zusätzlich besitzen alle Dateien, die keine regulären Dateien oder Verzeichnisse sind (z. B. Symlinks, FIFOs, Blockgeräte, Unix-Sockets und Zeichengeräte) ebenfalls einen NTFS-Analysepunkt.Additionally, any file that is not a regular file or directory (e.g: symlinks, FIFOs, block devices, unix sockets, and character devices) also have an NTFS reparse point. Dadurch lässt sich die Art der Datei in einem bestimmten Verzeichnis viel schneller bestimmen, ohne die erweiterten Attribute abfragen zu müssen.This makes it much faster to determine the kind of file in a given directory without having to query its extended attributes.

DateizugriffsszenarienFile Access Scenarios

Nachfolgend wird beschrieben, wie Berechtigungen bestimmt werden, wenn auf verschiedene Weise mithilfe des Windows-Subsystems für Linux auf Dateien zugegriffen wird.Below is a description of how permissions are determined when accessing files in different ways using the Windows Subsystem for Linux.

Zugreifen auf Dateien in Windows Drive File System (DrvFS) von LinuxAccessing Files in the Windows drive file system (DrvFS) from Linux

Diese Szenarien liegen vor, wenn Sie von WSL aus auf Ihre Windows-Dateien zugreifen, höchstwahrscheinlich über /mnt/c.These scenarios occur when you are accessing your Windows files from WSL, most likely via /mnt/c.

Lesen von Dateiberechtigungen aus einer vorhandenen Windows-DateiReading file permissions from an existing Windows file

Das Ergebnis hängt davon ab, ob die Datei bereits über Metadaten verfügt.The result depends on if the file already has existing metadata.

DrvFS-Datei enthält keine Metadaten (Standard)DrvFS file does not have metadata (default)

Wenn der Datei keine Metadaten zugeordnet sind, werden die tatsächlichen Berechtigungen des Windows-Benutzers in Lesen/Schreiben/Ausführen-Berechtigungsbits übersetzt und die entsprechenden Wert für Benutzer, Gruppen und andere festgelegt.If the file has no metadata associated with it then we translate the effective permissions of the Windows user to read/write/execute bits and set them to the this as the same value for user, group, and other. Wenn Ihr Windows-Benutzerkonto z. B. über Lese- und Ausführungszugriff, aber keinen Schreibzugriff für die Datei verfügt, wird dies als r-x für Benutzer, Gruppen und andere angezeigt.For example, if your Windows user account has read and execute access but not write access to the file then this will be shown as r-x for user, group and other. Wenn für die Datei das Schreibgeschützt-Attribut in Windows festgelegt ist, wird in Linux kein Schreibzugriff erteilt.If the file has the 'Read Only' attribute set in Windows then we do not grant write access in Linux.

Die Datei enthält MetadatenThe file has metadata

Wenn in der Datei Metadaten vorhanden sind, werden anstelle der Übersetzung der tatsächlichen Berechtigungen des Windows-Benutzers einfach diese Metadatenwerte verwendet.If the file has metadata present, we simply use those metadata values instead of translating effective permissions of the Windows user.

Ändern von Dateiberechtigungen für eine vorhandene Windows-Datei unter Verwendung von „chmod“Changing file permissions on an existing Windows file using chmod

Das Ergebnis hängt davon ab, ob die Datei bereits über Metadaten verfügt.The result depends on if the file already has existing metadata.

chmod-Datei enthält keine Metadaten (Standard)chmod file does not have metadata (default)

Chmod hat nur einen Effekt: Wenn Sie alle Schreibattribute einer Datei entfernen, wird das Schreibgeschützt-Attribut für die Windows-Datei festgelegt, da dies das gleiche Verhalten wie CIFS (Common Internet File System) ist, das der SMB-Client (Server Message Block) in Linux ist.Chmod will only have one effect, if you remove all the write attributes of a file then the 'read only' attribute on the Windows file will be set, since this is the same behaviour as CIFS (Common Internet File System) which is the SMB (Server Message Block) client in Linux.

Chmod-Datei enthält Metadatenchmod file has metadata

Chmod bewirkt das Ändern oder Hinzufügen von Metadaten in Abhängigkeit von den bereits vorhandenen Metadaten der Datei.Chmod will change or add metadata depending on the file's already existing metadata.

Denken Sie daran, dass Sie sich nicht mehr Zugriff erteilen können, als Sie in Windows besitzen, auch wenn die Metadaten dies tun.Please keep in mind that you cannot give yourself more access than what you have on Windows, even if the metadata says that is the case. Sie könnten die Metadaten beispielsweise mit chmod 777 so festlegen, dass Sie Schreibberechtigungen für eine Datei erhalten. Wenn Sie aber versuchen, auf diese Datei zuzugreifen, können Sie trotzdem nicht in diese schreiben.For example, you could set the metadata to display that you have write permissions to a file using chmod 777, but if you tried to access that file you would still not be able to write to it. Dies ist dank der Interoperabilität möglich, da alle Lese- oder Schreibbefehle für Windows-Dateien über Ihre Windows-Benutzerberechtigungen geleitet werden.This is thanks to interopability, as any read or write commands to Windows files are routed through your Windows user permissions.

Erstellen einer Datei in DriveFSCreating a file in DriveFS

Das Ergebnis hängt davon ab, ob Metadaten aktiviert sind.The result depends on if metadata is enabled.

Metadaten sind nicht aktiviert (Standard)Metadata is not enabled (default)

Die Windows-Berechtigungen der neu erstellten Datei sind identisch wie beim Erstellen der Datei in Windows ohne einen bestimmten Sicherheitsdeskriptor. Sie erben die Berechtigungen des übergeordneten Elements.The Windows permissions of the newly created file will be the same as if you created the file in Windows without a specific security descriptor, it will inherit the parent's permissions.

Metadaten sind aktiviertMetadata is enabled

Die Berechtigungsbits der Datei sind so festgelegt, dass Sie der Linux-Umask folgen, und die Datei wird mit Metadaten gespeichert.The file's permission bits are set to follow the Linux umask, and the file will be saved with metadata.

Welcher Linux-Benutzer und welche Linux-Gruppe besitzt die Datei?Which Linux user and Linux group owns the file?

Das Ergebnis hängt davon ab, ob die Datei bereits über Metadaten verfügt.The result depends on if the file already has existing metadata.

Benutzerdatei enthält keine Metadaten (Standard)User file does not have metadata (default)

Im Standardszenario legen wir beim Automatisieren von Windows-Laufwerken fest, dass die Benutzer-ID (UID) für jede Datei auf die Benutzer-ID des WSL-Benutzers und die Gruppen-ID (GID) auf die Prinzipalgruppen-ID des WSL-Benutzers festgelegt ist.In the default scenario, when automounting Windows drives, we specify that the user ID (UID) for any file is set to the user ID of your WSL user and the group ID (GID) is set to the principal group ID of your WSL user.

Benutzerdatei enthält MetadatenUser file has metadata

Die in den Metadaten angegebenen UID und GID werden als Benutzerbesitzer und Gruppenbesitzer der Datei angewendet.The UID and GID specified in the metadata is applied as the user owner and group owner of the file.

Zugreifen auf Linux-Dateien von Windows aus mithilfe von \\wsl$Accessing Linux files from Windows using \\wsl$

Wenn Sie über \\wsl$ auf Linux-Dateien zugreifen, wird der Standardbenutzer der WSL-Verteilung verwendet.Accessing Linux files via \\wsl$ will use the default user of your WSL distribution. Daher hat jede Windows-App, die auf Linux-Dateien zugreift, dieselben Berechtigungen wie der Standardbenutzer.Therefore any Windows app accessing Linux files will have the same permissions as the default user.

Erstellen einer neuen DateiCreating a new file

Beim Erstellen einer neuen Datei in einer WSL-Verteilung von Windows wird die Standard-Umask angewendet.The default umask is applied when creating a new file inside of a WSL distribution from Windows. Die Standard-Umask ist 022, d. h., es werden alle Berechtigungen mit Ausnahme von Schreibberechtigungen für Gruppen und andere zugelassen.The default umask is 022, or in other words it allows all permissions except write permissions to groups and others.

Zugreifen auf Dateien im Linux-Stammdateisystem aus LinuxAccessing files in the Linux root file system from Linux

Alle Dateien, die im Linux-Stammdateisystem erstellt oder geändert bzw. auf die zugegriffen wird, folgen den Linux-Standardkonventionen, z. B. dass die Umask auf neu erstellte Dateien angewendet wird.Any files created, modified, or accessed in the Linux root file system follow standard Linux conventions, such as applying the umask to a newly created file.

Konfigurieren von DateiberechtigungenConfiguring file permissions

Sie können Ihre Dateiberechtigungen innerhalb Ihrer Windows-Laufwerke mithilfe der Einbindungsoptionen in „WSL.conf“ konfigurieren.You can configure your file permissions inside of your Windows drives using the mount options in wsl.conf. Mit den Einbindungsoptionen können Sie umask-, dmask- und fmask-Berechtigungsmasken festlegen.The mount options allow you to set umask, dmask and fmask permissions masks. Die umask wird auf alle Dateien angewendet, die dmask wird nur auf Verzeichnisse angewendet, und die fmask wird nur auf Dateien angewendet.The umask is applied to all files, the dmask is applied just to directories and the fmask is applied just to files. Diese Berechtigungsmasken werden dann durch eine logische ODER-Operation festgelegt, wenn sie auf Dateien angewendet werden. Beispiel: Wenn Sie über einen umask-Wert von 023 und einen fmask-Wert von 022 verfügen, wird die resultierende Berechtigungsmaske für Dateien auf 023 festgelegt.These permission masks are then put through a logical OR operation when being applied to files, e.g: If you have a umask value of 023 and an fmask value of 022 then the resulting permissions mask for files will be 023.

Anweisungen zur Vorgehensweise finden Sie im Artikel Konfigurieren von Starteinstellungen mit „wslconf“ für Verteilungen.Please see the Configure per distro launch settings with wslconf article for instructions on how to do this.