Vylepšení Chmod a Chown WSL ve Windows 10
Uživatelé Linuxu určitě znají konzolové nástroje chown a chmod. Tyto dvě aplikace jsou nezbytné, pokud jde o správu oprávnění a vlastnictví. Nedávno společnost Microsoft provedla řadu vylepšení těchto nástrojů ve svém vlastním linuxovém subsystému dodávaném s Windows 10.
Nyní můžete nastavit vlastníka a skupinu souborů pomocí chmod/chown a upravit oprávnění pro čtení/zápis/spouštění ve WSL. Můžete také vytvářet speciální soubory, jako jsou fifos, unix sockety a soubory zařízení. Pro mnoho uživatelů WSL to byla dlouho očekávaná funkce.
Další zajímavou změnou jsou nové možnosti připojení se systémem souborů DrvFs pro promítání oprávnění do souborů spolu s poskytováním nových metadat Linuxu o souborech a složkách.
Než si budete moci užívat tyto nové funkce, musíte udělat jeden krok: Musíte odpojit drvfs a znovu je připojit s příznakem 'metadata'. Chcete-li to provést, zadejte na terminálu následující příkazy:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadata
Správnost připojení můžete ověřit spuštěním příkazu "mount -l" a uvidíte něco takového:
DrvFs je zásuvný modul souborového systému pro WSL, který přidává podporu interoperability mezi WSL a souborovým systémem Windows. DrvFs umožňuje WSL připojit jednotky s podporovanými systémy souborů pod /mnt, jako je /mnt/c, /mnt/d atd.
DrvFs přidává řadu nových možností připojení. Jsou následující:
Mezi nové možnosti montáže patří:
- uid: ID uživatele používané pro vlastníka všech souborů
- gid: ID skupiny používané pro vlastníka všech souborů
- umask: osmičková maska oprávnění k vyloučení pro všechny soubory a adresáře.
- fmask: osmičková maska oprávnění k vyloučení pro všechny běžné soubory.
- dmask: osmičková maska oprávnění k vyloučení pro všechny adresáře.
Viz následující příklad:
sudo mount -t drvfs C: /mnt/c -o metadata, uid=1000,gid=1000,umask=22,fmask=111
Po provedení příkazu mount uvidíte svůj mount (v tomto případě C:) se všemi parametry, které jste zadali při dotazu na seznam připojených zařízení.
Tato změna umožní připojovat složky a oddíly Windows pod jiný uživatelský účet ve WSL, nikoli pod výchozí.
Díky této změně budou oprávnění pro Linux uložena jako další metadata pro soubor. To umožní uložit oprávnění pro Linux i Windows pro jeden soubor. Nyní můžete změnit oprávnění ve WSL i ve Windows samostatně, aniž byste narušili prostředí. Jak si možná pamatujete, úprava souborů Linuxu z Windows mohla dříve narušit WSL.
Nově vytvořené soubory ve WSL budou ve výchozím nastavení vytvořeny s metadaty a budou respektovat vámi nastavené možnosti připojení.
Důležitá upozornění
Při práci s novými metadaty je třeba mít na paměti několik věcí:
Úprava souboru pomocí editoru Windows může odstranit metadata souboru pro Linux. V tomto případě se soubor vrátí ke svým výchozím oprávněním.
Odstraněním všech zápisových bitů ze souboru ve WSL způsobí Windows, že soubor označí jako pouze pro čtení.
Pokud máte nainstalovaných více distribucí WSL nebo více uživatelů Windows s nainstalovaným WSL, budou všichni používat stejná metadata pro stejné soubory. Uid každého uživatelského účtu WSL se může lišit. To je třeba vzít v úvahu při nastavování oprávnění.
Můžete například zakázat oprávnění k zápisu do souboru ve Windows a chmod souboru zobrazit, že oprávnění k zápisu jsou povolena ve WSL. Nebo můžete mít povolená oprávnění ke čtení ve Windows a odebrat oprávnění ke čtení ve WSL. Tento koncept můžete vidět níže.
Zdroj: Microsoft.