Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka podrobně popisuje, jak se oprávnění k souborům Linuxu interpretují v subsystému Windows pro Linux, zejména při přístupu k prostředkům v systému windows v systému souborů NT. Tato dokumentace předpokládá základní znalosti struktury oprávnění systému souborů Linux a příkazu umask.
Při přístupu k souborům Systému Windows z WSL se oprávnění k souborům vypočítají buď z oprávnění systému Windows, nebo se čtou z metadat, která byla přidána do souboru wsL. Tato metadata nejsou ve výchozím nastavení povolená.
Metadata WSL v souborech Windows
Pokud je metadata povolena jako možnost připojení ve WSL, rozšířené atributy v souborech Windows NT lze přidat a interpretovat tak, aby umožňovaly oprávnění systému souborů Linux.
WSL může přidat čtyři rozšířené atributy NTFS:
| Název atributu | Popis |
|---|---|
| $LXUID | ID vlastníka uživatele |
| $LXGID | ID vlastníka skupiny |
| $LXMOD | Mód souboru (osmičková oprávnění systému souborů a typ, např. 0777) |
| $LXDEV | Zařízení, pokud se jedná o soubor zařízení |
Kromě toho všechny soubory, které nejsou běžným souborem nebo adresářem (např. symlinks, FIFOs, bloková zařízení, sokety unixu a znaková zařízení), mají také bod opakování ntfs. Díky tomu je mnohem rychlejší určit typ souboru v daném adresáři, aniž byste museli zadávat dotazy na jeho rozšířené atributy.
Scénáře přístupu k souborům
Níže je popis, jak se oprávnění určují při přístupu k souborům různými způsoby pomocí subsystému Windows pro Linux.
Přístup k souborům v systému souborů jednotek Windows (DrvFS) z Linuxu
K těmto scénářům dochází, když přistupujete ke svým souborům Windows z WSL, s největší pravděpodobností prostřednictvím /mnt/c.
Čtení oprávnění k souborům z existujícího souboru Windows
Výsledek závisí na tom, jestli soubor již obsahuje existující metadata.
Soubor DrvFS nemá metadata (výchozí)
Pokud k souboru nejsou přidružena žádná metadata, přeložíme platná oprávnění uživatele systému Windows na čtení, zápis a spouštění bitů a nastavíme je na stejnou hodnotu pro uživatele, skupinu a další. Pokud má například váš uživatelský účet Systému Windows oprávnění ke čtení a spouštění, ale nemá k souboru přístup k zápisu, zobrazí se tento přístup jako r-x pro uživatele, skupinu a další. Pokud má soubor atribut Jen pro čtení nastavený ve Windows, neudělíme v Linuxu přístup k zápisu.
Soubor obsahuje metadata.
Pokud soubor obsahuje metadata, jednoduše tyto hodnoty metadat použijeme místo překladu efektivních oprávnění uživatele Systému Windows.
Změna oprávnění k souborům u existujícího souboru Windows pomocí chmodu
Výsledek závisí na tom, jestli soubor již obsahuje existující metadata.
Soubor chmod nemá metadata (výchozí)
Chmod bude mít pouze jeden účinek, pokud odeberete všechny atributy zápisu souboru, nastaví se atribut jen pro čtení v souboru Systému Windows, protože se jedná o stejné chování jako CIFS (Common Internet File System), což je klient SMB (Server Message Block) v Linuxu.
Soubor chmod obsahuje metadata
Chmod změní nebo přidá metadata v závislosti na již existujících metadatech souboru.
Mějte prosím na paměti, že se nemůžete dostat větší přístup, než který máte v systému Windows, i když metadata tvrdí, že tomu tak je. Můžete například nastavit metadata tak, aby zobrazovala, že máte oprávnění k zápisu do souboru pomocí chmod 777, ale pokud jste se pokusili o přístup k ho souboru, stále byste do něj nemohli zapisovat. To je díky interoperabilitě, protože všechny příkazy pro čtení nebo zápis do souborů Systému Windows se směrují prostřednictvím uživatelských oprávnění windows.
Vytvoření souboru v DriveFS
Výsledek závisí na tom, jestli jsou povolena metadata.
Metadata nejsou povolená (výchozí)
Oprávnění Systému Windows nově vytvořeného souboru budou stejná jako v případě, že jste soubor vytvořili ve Windows bez konkrétního popisovače zabezpečení, dědí oprávnění nadřazeného objektu.
Metadata jsou povolená.
Nastavení oprávnění souboru je upraveno tak, aby sledovalo umask v Linuxu, a soubor bude uložen s metadaty.
Který uživatel Linuxu a skupina Linuxu soubor vlastní?
Výsledek závisí na tom, jestli soubor již obsahuje existující metadata.
Uživatelský soubor nemá metadata (výchozí)
Ve výchozím scénáři při automatickém připojování jednotek Windows určíme, že ID uživatele (UID) pro libovolný soubor je nastaveno na ID uživatele WSL a ID skupiny (GID) je nastaveno na ID hlavní skupiny vašeho uživatele WSL.
Uživatelský soubor má metadata
UID a GID zadané v metadatech se použijí jako vlastník uživatele a vlastník skupiny souboru.
Přístup k linuxovým souborům z Windows pomocí \\wsl$
Přístup k souborům Linuxu prostřednictvím \\wsl$ bude používat výchozího uživatele vaší distribuce WSL. Proto všechny aplikace pro Windows, které přistupují k souborům Linuxu, budou mít stejná oprávnění jako výchozí uživatel.
Vytvoření nového souboru
Výchozí umask se použije při vytváření nového souboru uvnitř distribuce WSL z Windows. Výchozí umask je 022nebo jinými slovy umožňuje všechna oprávnění kromě oprávnění k zápisu do skupin a dalších.
Přístup k souborům v kořenovém souborovém systému Linuxu z Linuxu
Všechny soubory vytvořené, upravené nebo přístupné v kořenovém systému souborů Linuxu se řídí standardními zásadami Linuxu, jako je použití umask na nově vytvořený soubor.
Konfigurace oprávnění k souborům
Oprávnění k souborům ve vašich jednotkách Windows můžete nakonfigurovat pomocí možností připojení ve wsl.conf. Možnosti připojení umožňují nastavit masky oprávnění pro umask, dmask a fmask. Použije se umask u všech souborů, použije dmask se jenom u adresářů a fmask použije se jenom u souborů. Tyto masky oprávnění se pak při použití na soubory provedou logickou operací OR, například: Pokud máte umask hodnotu 023 a fmask hodnotu 022 , bude 023výsledná maska oprávnění pro soubory .
Další informace: Možnosti konfigurace jednotlivých distribucí pomocí wsl.conf.
Windows Subsystem for Linux