我最近在我的 Win 10(版本 10.0.17134.228)上安装了 WSL,并且我尝试从 Linux 访问安装在 Windows 上的磁盘上的文件。
我的电脑中有 2 个硬盘:
- 第一个磁盘:安装 Windows 的单个分区(Windows 中的 C:/)
- 第二个磁盘:它有 2 个分区
- 包含 Ubuntu 的分区(用于双启动)
- 仅包含数据的 NTFS 分区(Windows 中的 D:/)
当我从 Windows 或 Ubuntu(双启动)工作时,我从 D:/ 分区访问数据。
现在我想从 WSL 访问 D:/ 分区中的数据,但它告诉我我没有权限
当我在目录中看到
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 的评论,我更深入地研究了我可以访问和不能访问的两个文件。
我检查了文件属性,在“详细信息”选项卡下,我发现这两个文件的所有者不同:
- 我可以访问的文件有所有者
DESKTOP-1CEE3H9\MyUser
- 我无法访问的文件有所有者
Administrators
我还检查了另一个我可以访问的文件,该文件的所有者是一长串数字和字母。
我尝试将一个文件的所有者从更改为Administrators
,DESKTOP-1CEE3H9\MyUser
看起来我现在在 WSL 中看到了正确的权限。
这有关系吗?
答案1
我注意到 Windows 上该文件的所有者是“管理员”。
我将其改为我的用户关注此链接并且 WSL 开始授予适当的权限。
总结一下这里的步骤:
左键单击 -> “属性”选项 -> “安全”选项卡 -> “高级”按钮 -> “所有者”旁边的“更改”按钮 -> 在输入字段中输入您的用户名,然后按“检查名称”按钮
然后按“确定”,直到关闭所有窗口
我仍然不确定为什么我可以在 Windows 中访问它们,但在 WSL 上却不能访问它们。
答案2
解决方法:
sudo chmod a+rwx /path/to/file
在终端中输入,替换/path/to/file
为要授予所有人权限的文件,然后按Enter
您还可以使用该命令sudo chmod -R a+rwx /path/to/folder
为文件夹及其内部的每个文件和文件夹授予权限。x
如果您不希望文件可执行,请从任一命令中省略。
来源:https://smallbusiness.chron.com/give-permissions-ubuntu-33174.html
答案3
我没有任何“安全”选项卡,但我想我已经解决了这个问题。
就我而言,我想通过 GitHub Desktop 添加一个存储库,当系统提示我输入位置时,我没有多想就创建了一个文件夹。就是这样,权限搞砸了。
简而言之,不要通过 Windows 创建或修改 Linux 文件系统中的任何内容,仅使用Linux终端。
之后您可以随时将存储库添加到您选择的软件中。