Ulepszenia Chmod i Chown WSL w systemie Windows 10
Użytkownicy Linuksa są zdecydowanie zaznajomieni z narzędziami konsolowymi chown i chmod. Te dwie aplikacje są niezbędne, jeśli chodzi o zarządzanie uprawnieniami i własnością. Niedawno firma Microsoft wprowadziła szereg ulepszeń do tych narzędzi w swoim własnym podsystemie Linux dołączonym do systemu Windows 10.
Reklama
Możesz teraz ustawić właściciela i grupę plików za pomocą chmod/chown i modyfikować uprawnienia odczytu/zapisu/wykonywania w WSL. Możesz także tworzyć specjalne pliki, takie jak fifos, gniazda unix i pliki urządzeń. Dla wielu użytkowników WSL była to długo oczekiwana funkcja.
Kolejną interesującą zmianą są nowe opcje montowania z systemem plików DrvFs do rzutowania uprawnień na pliki wraz z dostarczaniem nowych metadanych Linuksa do plików i folderów.
Jest jeden krok, który musisz zrobić, zanim będziesz mógł cieszyć się tymi nowymi funkcjami: musisz odmontować drvfs i zamontować go ponownie z flagą 'metadata'. Aby to zrobić, wprowadź następujące polecenia w Terminalu:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadane
Możesz sprawdzić, czy jest poprawnie zamontowany, uruchamiając "mount -l", aby zobaczyć coś takiego:
DrvFs to wtyczka systemu plików dla WSL, która dodaje obsługę współdziałania między WSL a systemem plików Windows. DrvFs umożliwia WSL montowanie dysków z obsługiwanymi systemami plików w katalogu /mnt, takimi jak /mnt/c, /mnt/d itp.
DrvFs dodaje szereg nowych opcji montowania. Są to:
Nowe opcje mocowania obejmują:
- uid: identyfikator użytkownika używany jako właściciel wszystkich plików
- gid: identyfikator grupy używany przez właściciela wszystkich plików
- umask: ósemkowa maska uprawnień do wykluczenia dla wszystkich plików i katalogów.
- fmask: ósemkowa maska uprawnień do wykluczenia dla wszystkich zwykłych plików.
- dmask: ósemkowa maska uprawnień do wykluczenia dla wszystkich katalogów.
Zobacz następujący przykład:
sudo mount -t drvfs C: /mnt/c -o metadane, uid=1000,gid=1000,umask=22,fmask=111
Po wykonaniu polecenia mount zobaczysz swoje montowanie (w tym przypadku C:) na liście ze wszystkimi parametrami, które przekazałeś podczas zapytania o listę zamontowanych urządzeń.
Ta zmiana pozwoli na montowanie folderów i partycji Windows na innym koncie użytkownika w WSL zamiast domyślny!.
Dzięki tej zmianie uprawnienia systemu Linux będą przechowywane jako dodatkowe metadane do pliku. Umożliwi to przechowywanie zarówno uprawnień Linux, jak i Windows dla jednego pliku. Teraz możesz oddzielnie zmieniać uprawnienia zarówno w WSL, jak i Windows, bez psucia środowiska. Jak być może pamiętasz, modyfikowanie plików Linuksa z systemu Windows może wcześniej zepsuć WSL.
Nowo utworzone pliki w WSL będą domyślnie tworzone z metadanymi i będą respektować ustawione przez Ciebie opcje montowania.
Ważne zastrzeżenia
Jest kilka rzeczy, o których musisz wiedzieć, kiedy majstrujesz przy nowych metadanych:
Edytowanie pliku za pomocą edytora Windows może spowodować usunięcie metadanych pliku z systemu Linux. W takim przypadku plik powróci do swoich domyślnych uprawnień.
Usunięcie wszystkich bitów zapisu z pliku w WSL spowoduje, że system Windows oznaczy plik jako tylko do odczytu.
Jeśli masz zainstalowanych wiele dystrybucji WSL lub wielu użytkowników systemu Windows z zainstalowanym WSL, wszyscy będą używać tych samych metadanych w tych samych plikach. Identyfikatory użytkownika każdego konta użytkownika WSL mogą się różnić. To coś do rozważenia podczas ustawiania uprawnień.
Na przykład możesz wyłączyć uprawnienia do zapisu w pliku w systemie Windows i chmod plik, aby pokazać, że uprawnienia do zapisu są włączone w WSL. Możesz też włączyć uprawnienia do odczytu w systemie Windows i usunąć uprawnienia do odczytu w WSL. Możesz zobaczyć tę koncepcję zilustrowaną poniżej.
Źródło: Microsoft.