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.