Подобрения на Chmod и Chown WSL в Windows 10
Потребителите на Linux определено са запознати с конзолните инструменти chown и chmod. Тези две приложения са от съществено значение, когато става въпрос за разрешение и управление на собствеността. Наскоро Microsoft направи редица подобрения на тези инструменти в собствената си подсистема Linux, в комплект с Windows 10.
Вече можете да зададете собственика и групата файлове с помощта на chmod/chown и да промените разрешенията за четене/запис/изпълнение в WSL. Можете също да създавате специални файлове като fifos, unix сокети и файлове на устройства. Това беше дългоочаквана функция за много потребители на WSL.
Друга интересна промяна са нови опции за монтиране с файлова система DrvFs за проектиране на разрешения върху файлове, заедно с предоставянето на нови метаданни на Linux за файлове и папки.
Има една стъпка, която трябва да направите, преди да можете да се насладите на тези нови функции: Трябва да демонтирате drvfs и да го монтирате отново с флага 'metadata'. За да направите това, въведете следните команди в терминала:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o метаданни
Можете да проверите дали е монтиран правилно, като изпълните "mount -l", за да видите нещо подобно:
DrvFs е плъгин за файлова система за WSL, който добавя поддръжка за взаимодействие между WSL и файловата система на Windows. DrvFs позволява на WSL да монтира устройства с поддържани файлови системи под /mnt, като /mnt/c, /mnt/d и др.
DrvFs добавя редица нови опции за монтиране. Те са както следва:
Новите опции за монтиране включват:
- uid: потребителският идентификатор, използван за собственика на всички файлове
- gid: идентификаторът на групата, използван за собственика на всички файлове
- umask: осмична маска на разрешенията за изключване за всички файлове и директории.
- fmask: осмична маска на разрешенията за изключване за всички редовни файлове.
- dmask: осмична маска на разрешенията за изключване за всички директории.
Вижте следния пример:
sudo mount -t drvfs C: /mnt/c -o метаданни, uid=1000,gid=1000,umask=22,fmask=111
След като изпълните командата за монтиране, ще видите вашето монтиране (в този случай C:) в списъка с всички параметри, които сте предали при запитване за списък с монтирани устройства.
Тази промяна ще позволи монтирането на папки и дялове на Windows под друг потребителски акаунт в WSL, а не един по подразбиране.
С тази промяна разрешенията на Linux се съхраняват като допълнителни метаданни за файл. Това ще позволи да се съхраняват както Linux, така и Windows разрешения за един файл. Сега можете да променяте разрешенията както в WSL, така и в Windows поотделно, без да нарушавате средата. както може би си спомняте, модифицирането на Linux файлове от Windows може да наруши WSL по-рано.
Новосъздадените файлове в WSL ще бъдат създадени с метаданни по подразбиране и ще спазват опциите за монтиране, които сте задали.
Важни предупреждения
Има няколко неща, които трябва да сте сигурни, че сте наясно, когато се занимавате с новите метаданни:
Редактирането на файл с помощта на Windows редактор може да премахне метаданните за Linux на файла. В този случай файлът ще се върне към разрешенията по подразбиране.
Премахването на всички битове за запис във файл в WSL ще накара Windows да маркира файла като само за четене.
Ако имате инсталирани множество WSL дистрибуции или няколко потребители на Windows с инсталиран WSL, всички те ще използват едни и същи метаданни за едни и същи файлове. Uid на всеки потребителски акаунт на WSL може да се различава. Това е нещо, което трябва да имате предвид при задаване на разрешения.
Например, можете да деактивирате разрешенията за запис във файл в Windows и да chmod файла, за да покаже, че разрешенията за запис са активирани в WSL. Или можете да активирате разрешения за четене под Windows и да премахнете разрешенията за четене в WSL. Можете да видите тази концепция, илюстрирана по-долу.
Източник: Microsoft.