最近、Win 10(バージョン10.0.17134.228)にWSLをインストールし、LinuxからWindowsにマウントされたディスク上のファイルにアクセスしようとしています。
私のPCには2つのHDがあります。
WindowsまたはUbuntu(デュアルブートの1つ)から作業する場合、D:/パーティションからデータにアクセスします。
ここで、WSLからD:/パーティションのデータにアクセスしたいのですが、アクセス許可がないことがわかります
私が見るディレクトリにlsすると、
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つを調べました。
ファイルのプロパティを確認したところ、[詳細]タブで2つのファイルの所有者が異なることがわかりました。
DESKTOP-1CEE3H9\MyUser
ですAdministrators
ですアクセス可能な別のファイルもチェックしました。このファイルには、所有者として長い数字と文字のシーケンスがあります。
1つのファイルの所有者をAdministrators
からDESKTOP-1CEE3H9\MyUser
に変更してみましたが、WSLに適切な権限が表示されているようです。
これは関係がありますか?
Windowsでのファイルの所有者は「管理者」であることに気付きました。
このリンク をフォローするユーザーに変更し、WSLが適切な権限を付与し始めました。
ここで手順を要約すると:
左クリック-> [プロパティ]オプション-> [セキュリティ]タブ-> [詳細]ボタン-> [所有者]の横にある[変更]ボタン->入力フィールドにユーザー名を入力し、[名前の確認]ボタンを押します
次に、すべてのウィンドウを閉じるまでOkを押します
WindowsでWSLでアクセスできなかった理由がわかりません。