Улучшения Chmod и Chown WSL в Windows 10
Пользователи Linux определенно знакомы с консольными инструментами chown и chmod. Эти два приложения важны, когда речь идет о разрешениях и управлении владением. Недавно Microsoft внесла ряд улучшений в эти инструменты в своей собственной подсистеме Linux в комплекте с Windows 10.
Теперь вы можете установить владельца и группу файлов с помощью chmod / chown и изменить разрешения на чтение / запись / выполнение в WSL. Вы также можете создавать специальные файлы, такие как fifos, сокеты unix и файлы устройств. Это была долгожданная функция для многих пользователей WSL.
Еще одно интересное изменение - это новые параметры монтирования с файловой системой DrvFs для проецирования разрешений на файлы наряду с предоставлением новых метаданных Linux для файлов и папок.
Есть один шаг, который вы должны сделать, прежде чем сможете пользоваться этими новыми функциями: вы должны размонтировать drvfs и повторно подключить его с флагом «метаданные». Для этого введите в Терминале следующие команды:
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
После выполнения команды mount вы увидите свое монтирование (в данном случае C :) в списке со всеми параметрами, которые вы передали при запросе списка подключенных устройств.
Это изменение позволит монтировать папки и разделы Windows под другой учетной записью пользователя в WSL, а не по умолчанию.
С этим изменением разрешения Linux будут храниться как дополнительные метаданные для файла. Это позволит хранить права доступа как Linux, так и Windows для одного файла. Теперь вы можете изменять разрешения как в WSL, так и в Windows по отдельности, не нарушая среду. Как вы помните, изменение файлов Linux из Windows могло сломать WSL раньше.
Вновь созданные файлы в WSL по умолчанию будут создаваться с метаданными с учетом установленных вами параметров монтирования.
Важные предостережения
При работе с новыми метаданными необходимо помнить о нескольких вещах:
Редактирование файла с помощью редактора Windows может привести к удалению метаданных файла Linux. В этом случае для файла будут восстановлены разрешения по умолчанию.
Удаление всех битов записи в файле в WSL заставит Windows пометить файл как доступный только для чтения.
Если у вас установлено несколько дистрибутивов WSL или несколько пользователей Windows с установленным WSL, все они будут использовать одни и те же метаданные для одних и тех же файлов. Идентификаторы uid каждой учетной записи пользователя WSL могут отличаться. Это следует учитывать при настройке разрешений.
Например, вы можете отключить разрешения на запись в файл в Windows и изменить файл, чтобы показать, что разрешения на запись включены в WSL. Или вы можете включить разрешения на чтение в Windows и удалить разрешения на чтение в WSL. Вы можете увидеть эту концепцию, проиллюстрированную ниже.
Источник: Microsoft.