Windows WSL Ubuntu бачить неправильні дозволи для файлів на встановленому диску


3

Нещодавно я встановив WSL на своєму Win 10 (версія 10.0.17134.228) і намагаюся отримати доступ до своїх файлів на диску, встановленому на Windows з Linux.

У мене на ПК 2 HD:

  1. Перший диск: Єдиний розділ, де встановлено Windows (C: / в Windows)
  2. Другий диск: Він має 2 розділи
    1. Розділ, який містить Ubuntu (для подвійного завантаження)
    2. Розділ NTFS, який містить лише дані (D: / у Windows)

Коли я працюю з Windows або Ubuntu (подвійний завантажувальний), я отримую доступ до даних з розділу D: /.

Тепер я хотів отримати доступ до даних у розділі D: / з WSL, але він говорить мені, що у мене немає дозволів

Коли я в каталозі, я бачу

mypc@DESKTOP-1CEE3H9:/$ ls -la /mnt/d/mypath/child/
total 36
drwxrwxrwx 1 myuser myuser  4096 Jun  2 19:54 .
drwxrwxrwx 1 myuser myuser  4096 Aug 18 00:52 ..
---------- 1 myuser myuser  1884 Dec 27  2017 myfile1
d--x--x--x 1 myuser myuser  4096 Jun 24 23:29 myfolder1

І в батьківській стежці я бачу

mypc@DESKTOP-1CEE3H9:/$ ls -la /mnt/d/mypath/
total 180
drwxrwxrwx 1 myuser myuser   4096 May 21  2017 .
drwxrwxrwx 1 myuser myuser   4096 Aug 24 22:59 ..
drwxrwxrwx 1 myuser myuser   4096 Aug 13  2015 myfolder2
d--x--x--x 1 myuser myuser   4096 Sep 24  2015 myfolder3
-rwxrwxrwx 1 myuser myuser    268 Jan 19  2015 myfile2

Навпаки, в розділі C: / я бачу

mypc@DESKTOP-1CEE3H9:/$ ls -la /mnt/c/Users/MyUser/Desktop/
total 505276
drwxrwxrwx 1 myuser myuser       512 Aug 20 23:12  .
drwxrwxrwx 1 myuser myuser       512 Aug 18 01:07  ..
-rwxrwxrwx 1 myuser myuser       1604 Jun 17 15:47 myfile3
drwxrwxrwx 1 myuser myuser       512 Mar 31 13:16  myfolder4

У Windows я можу отримати доступ до всіх цих файлів. У WSL я можу отримати доступ myfolder2, myfolder4і можу читати myfile2, myfile3. Я не можу отримати доступ myfile1, myfolder1, myfolder3.

Мої розділи є

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000)
D: on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000)

Я не розумію, чому дозволи на файли відрізняються на диску. Можливо, тому, що я створюю / редагую деякі з них з Ubuntu (подвійне завантаження), а деякі з Windows?

Як я можу виправити проблему, щоб отримати доступ до файлів?

Я не пробував chmodдиск, тому що він великий, я не хочу ризикувати порушенням жодного файлу, і мені це здається, що це виправить симптоми, а не першопричину проблем з дозволом.

Дякую


Редагувати

Після коментаря Biswapriyo я краще роздивився два файли, до яких я можу і не можу отримати доступ.

Я перевірив Властивості файлу, і на вкладці «Деталі» я побачив, що власник 2-х файлів інший:

  • Файл, до якого я можу отримати доступ, має власника DESKTOP-1CEE3H9\MyUser
  • Файл, до якого я не можу отримати доступ, має власника Administrators

Я також перевірив ще один файл, до якого я можу отримати доступ, і цей власник має довгу послідовність цифр і літер.

Я спробував змінити власника одного файлу з Administratorsна, DESKTOP-1CEE3H9\MyUserі, схоже, тепер я бачу правильні дозволи в WSL.

Чи може це бути пов’язано?


1
+1 за це добре відформатоване та детальне запитання. Якщо будь-яка програма Windows створює / редагує файл / папку, на який буде встановлено дозвіл 000. Просто замініть його на chmod. Або ви можете це зробити за NtSetEaFile()допомогою CreateFile().
— Бісвапріо

Дякую! Це правда, навіть якщо ці файли були створені до мого ввімкнення WSL? Чому я можу отримати доступ і редагувати ці файли з Ubuntu (подвійне завантаження)? Це якась специфіка drvfs?
— Makers_F

Оскільки у файлі WSL доступ до дозволу доступний як розширені атрибути NTFS (EA). Драйвер WSL імітує EA як дозвіл файлів Linux. Але зазвичай дозволи на отримання файлів дистрибуції (подвійне завантаження), як зазвичай.
— Бісвапріо

Але у Windows я можу редагувати файл, тому я би очікував, що це відобразиться всередині WSL, дозволяючи мені читати / записувати файл. (Я не знайомий із тим, як дозволи зберігаються на FS як у Linux, так і в Win, тому я не розумію). Я вирішив проблему, призначивши право власності на свого користувача в Windows, і тепер я можу також доступ до файлів у WSL. Дякую за допомогу!
— Makers_F

Відповіді:


2

Я помітив, що власником файлу в Windows були "Адміністратори".

Я змінив це, щоб бути моїм користувачем, перейшовши за цим посиланням, і WSL почав давати відповідні дозволи.

Щоб узагальнити кроки тут:

Клацніть лівою кнопкою миші -> "Параметри" Властивості -> вкладка "Захист" -> Кнопка "Додатково" -> Кнопка "Змінити" поруч із "Власник" -> У полі введення напишіть своє ім'я користувача та натисніть кнопку "Перевірити імена"

Потім натискайте Гаразд, поки не закриєте всі вікна

Я досі не впевнений, чому я міг отримати доступ до них у Windows, але не у WSL.


Оновлено відповідь
— Makers_F
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.