Chmod och Chown WSL-förbättringar i Windows 10
Linux-användare är definitivt bekanta med chown- och chmod-konsolverktyg. Dessa två appar är viktiga när det gäller tillstånd och ägandehantering. Microsoft har nyligen gjort ett antal förbättringar av dessa verktyg i deras alldeles egna Linux-undersystem med Windows 10.
Du kan nu ställa in ägaren och gruppen av filer med chmod/chown och ändra läs-/skriv-/körrättigheter i WSL. Du kan också skapa specialfiler som fifos, unix-uttag och enhetsfiler. Det var en efterlängtad funktion för många WSL-användare.
En annan intressant förändring är nya monteringsalternativ med DrvFs filsystem för att projicera behörigheter på filer tillsammans med att tillhandahålla ny Linux-metadata på filer och mappar.
Det finns ett steg du måste ta innan du kan njuta av dessa nya funktioner: Du måste avmontera drvfs och montera om den med flaggan "metadata". För att göra detta, skriv in följande kommandon i terminalen:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadata
Du kan verifiera att den har monterats korrekt genom att köra "mount -l" för att se något i stil med detta:
DrvFs är ett filsystemplugin för WSL som lägger till stöd för interop mellan WSL och Windows filsystem. DrvFs gör det möjligt för WSL att montera enheter med filsystem som stöds under /mnt, såsom /mnt/c, /mnt/d, etc.
DrvFs lägger till ett antal nya monteringsalternativ. De är följande:
De nya monteringsalternativen inkluderar:
- uid: användar-ID som används för ägaren av alla filer
- gid: grupp-ID som används för ägaren av alla filer
- umask: en oktal mask av behörigheter att exkludera för alla filer och kataloger.
- fmask: en oktal mask av behörigheter att exkludera för alla vanliga filer.
- dmask: en oktal mask med behörigheter att utesluta för alla kataloger.
Se följande exempel:
sudo mount -t drvfs C: /mnt/c -o metadata, uid=1000,gid=1000,umask=22,fmask=111
Efter att ha utfört monteringskommandot kommer du att se din montering (i det här fallet C:) listad med alla parametrar du skickade in när du frågade efter en lista över monterade enheter.
Denna ändring kommer att tillåta montering av Windows-mappar och -partitioner under ett annat användarkonto i WSL snarare standard en.
Med denna ändring kommer Linux-behörigheter att lagras som ytterligare metadata för en fil. Detta gör det möjligt att lagra både Linux- och Windows-behörigheter för en enda fil. Nu kan du ändra behörigheter i både WSL eller Windows separat utan att bryta miljön. Som du kanske minns, modifiering av Linux-filer från Windows kan bryta WSL tidigare.
Nyskapade filer i WSL kommer att skapas med metadata som standard och kommer att respektera monteringsalternativen du har ställt in.
Viktiga varningar
Det finns några saker att se till att du är medveten om när du mixar med den nya metadatan:
Att redigera en fil med en Windows-redigerare kan ta bort filens Linux-metadata. I det här fallet kommer filen att återgå till sina standardbehörigheter.
Om du tar bort alla skrivbitar på en fil i WSL kommer Windows att markera filen som skrivskyddad.
Om du har flera WSL-distros installerade eller flera Windows-användare med WSL installerat kommer de alla att använda samma metadata på samma filer. Uid: n för varje WSL-användarkonto kan skilja sig åt. Detta är något att tänka på när du ställer in behörigheter.
Till exempel kan du inaktivera skrivbehörigheter för en fil i Windows och chmod filen för att visa att skrivbehörigheter är aktiverade i WSL. Eller så kan du ha läsbehörigheter aktiverade under Windows och ta bort läsbehörigheter i WSL. Du kan se detta koncept illustrerat nedan.
Källa: Microsoft.