Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie szczegółowo opisano sposób interpretowania uprawnień plików systemu Linux w podsystemie Windows dla systemu Linux, szczególnie w przypadku uzyskiwania dostępu do zasobów wewnątrz systemu Windows w systemie plików NT. W tej dokumentacji zakłada się, że posiadasz podstawową wiedzę na temat struktury uprawnień systemu plików Linux oraz polecenia umask.
Podczas uzyskiwania dostępu do plików systemu Windows z programu WSL uprawnienia do pliku są obliczane z uprawnień systemu Windows lub są odczytywane z metadanych dodanych do pliku przez program WSL. Te metadane nie są domyślnie włączone.
Metadane programu WSL w plikach systemu Windows
Gdy metadane są włączone jako opcja instalacji w programie WSL, atrybuty rozszerzone w plikach systemu Windows NT można dodawać i interpretować w celu dostarczania uprawnień systemu plików Linux.
Program WSL może dodać cztery atrybuty rozszerzone NTFS:
| Nazwa atrybutu | Opis |
|---|---|
| $LXUID | Identyfikator właściciela użytkownika |
| $LXGID | Identyfikator właściciela grupy |
| $LXMOD | Tryb pliku (wartości ósemkowe uprawnień systemów plików i typ, np. 0777) |
| $LXDEV | Urządzenie, jeśli jest to plik urządzenia |
Ponadto każdy plik, który nie jest zwykłym plikiem lub katalogiem (np. symlinki, FIFOs, urządzenia blokowe, gniazda Unix i urządzenia znakowe) również ma punkt ponownej analizy NTFS. Dzięki temu znacznie szybciej można określić rodzaj pliku w danym katalogu bez konieczności wykonywania zapytań o jego atrybuty rozszerzone.
Scenariusze dostępu do plików
Poniżej przedstawiono opis sposobu określania uprawnień podczas uzyskiwania dostępu do plików na różne sposoby przy użyciu podsystemu Windows dla systemu Linux.
Uzyskiwanie dostępu do plików w systemie plików dysku systemu Windows (DrvFS) z systemu Linux
Te scenariusze występują, gdy uzyskujesz dostęp do plików systemu Windows z programu WSL, najprawdopodobniej za pośrednictwem ./mnt/c
Odczytywanie uprawnień do pliku z istniejącego pliku systemu Windows
Wynik zależy od tego, czy plik ma już istniejące metadane.
Plik DrvFS nie ma metadanych (ustawienie domyślne)
Jeśli plik nie ma skojarzonych z nim metadanych, tłumaczymy skuteczne uprawnienia użytkownika systemu Windows na bity odczytu/zapisu/wykonywania i ustawiamy je na tę samą wartość dla użytkownika, grupy i innych. Na przykład, jeśli konto użytkownika w systemie Windows ma dostęp do odczytu i wykonywania, ale nie ma dostępu do zapisu do pliku, to dla użytkownika, grupy i innych zostanie wyświetlone jako r-x. Jeśli plik ma atrybut "Tylko do odczytu" ustawiony w systemie Windows, nie udzielamy dostępu do zapisu w systemie Linux.
Plik zawiera metadane
Jeśli plik zawiera metadane, po prostu używamy tych wartości metadanych zamiast tłumaczyć skuteczne uprawnienia użytkownika systemu Windows.
Zmiana uprawnień do pliku w istniejącym pliku systemu Windows przy użyciu modułu chmod
Wynik zależy od tego, czy plik ma już istniejące metadane.
Plik chmod nie ma metadanych (ustawienie domyślne)
Tryb Chmod będzie miał tylko jeden wpływ, jeśli usuniesz wszystkie atrybuty zapisu pliku, atrybut "tylko do odczytu" w pliku systemu Windows zostanie ustawiony, ponieważ jest to takie samo zachowanie jak CIFS (wspólny system plików internetowych), który jest klientem SMB (blok komunikatów serwera) w systemie Linux.
Plik chmod ma metadane
Moduł Chmod zmieni lub doda metadane w zależności od istniejących metadanych pliku.
Pamiętaj, że nie możesz dać sobie większego dostępu niż to, co masz w systemie Windows, nawet jeśli metadane mówią, że tak jest. Można na przykład ustawić metadane tak, aby wyświetlały uprawnienia do zapisu w pliku przy użyciu polecenia chmod 777, ale jeśli próbowano uzyskać dostęp do tego pliku, nadal nie będzie można go zapisać. Jest to dzięki współdziałaniu, ponieważ wszystkie polecenia odczytu lub zapisu do plików systemu Windows są kierowane za pośrednictwem uprawnień użytkownika systemu Windows.
Tworzenie pliku w systemie plików DriveFS
Wynik zależy od tego, czy metadane są włączone.
Metadane nie są włączone (ustawienie domyślne)
Uprawnienia systemu Windows dla nowo utworzonego pliku będą takie same, jak gdyby plik został utworzony w systemie Windows bez określonego deskryptora zabezpieczeń; odziedziczy on uprawnienia od obiektu nadrzędnego.
Metadane są włączone
Bity uprawnień pliku są ustawiane zgodnie z maską umask systemu Linux, a plik zostanie zapisany wraz z metadanymi.
Który użytkownik systemu Linux i grupa systemu Linux są właścicielem pliku?
Wynik zależy od tego, czy plik ma już istniejące metadane.
Plik użytkownika nie ma metadanych (ustawienie domyślne)
W domyślnym scenariuszu podczas automatycznego instalowania dysków z systemem Windows określamy, że identyfikator użytkownika (UID) dla dowolnego pliku jest ustawiony na identyfikator użytkownika WSL, a identyfikator grupy (GID) jest ustawiony na identyfikator głównej grupy użytkownika WSL.
Plik użytkownika zawiera metadane
Identyfikator UID i GID określony w metadanych są stosowane jako właściciel użytkownika i właściciel grupy pliku.
Uzyskiwanie dostępu do plików systemu Linux z systemu Windows przy użyciu \\wsl$
Uzyskiwanie dostępu do plików systemu Linux za pośrednictwem \\wsl$ będzie używać domyślnego użytkownika dystrybucji WSL. W związku z tym każda aplikacja systemu Windows, która uzyskuje dostęp do plików systemu Linux, będzie miała takie same uprawnienia jak użytkownik domyślny.
Tworzenie nowego pliku
Domyślny umask jest stosowany podczas tworzenia nowego pliku w dystrybucji WSL w kontekście systemu Windows. Domyślny umask to 022, lub innymi słowy, zezwala na wszystkie uprawnienia z wyjątkiem uprawnień zapisu dla grup i innych.
Uzyskiwanie dostępu do plików w głównym systemie plików systemu Linux z systemu Linux
Wszystkie pliki utworzone, zmodyfikowane lub dostępne w głównym systemie plików Linux są zgodne ze standardowymi konwencjami systemu Linux, takimi jak stosowanie umask do nowo utworzonego pliku.
Konfigurowanie uprawnień do plików
Uprawnienia do plików można skonfigurować na dyskach z systemem Windows przy użyciu opcji instalacji w pliku wsl.conf. Opcje montowania umożliwiają ustawianie masek uprawnień dla umask, dmask i fmask. Element umask jest stosowany do wszystkich plików, dmask element jest stosowany tylko do katalogów, a fmask element jest stosowany tylko do plików. Te maski uprawnień są następnie poddawane operacji logicznej LUB podczas stosowania ich do plików, na przykład: jeśli masz umask wartość 023 i fmask wartość 022, to wynikowa maska uprawnień dla plików będzie 023.
Dowiedz się więcej: Opcje konfiguracji dla każdej dystrybucji z wsl.conf.
Windows Subsystem for Linux