Windows WSL Ubuntu 在已安装的磁盘上看到文件的错误权限

Windows WSL Ubuntu 在已安装的磁盘上看到文件的错误权限

我最近在我的 Win 10(版本 10.0.17134.228)上安装了 WSL,并且我尝试从 Linux 访问安装在 Windows 上的磁盘上的文件。

我的电脑中有 2 个硬盘:

  1. 第一个磁盘:安装 Windows 的单个分区(Windows 中的 C:/)
  2. 第二个磁盘:它有 2 个分区
    1. 包含 Ubuntu 的分区(用于双启动)
    2. 仅包含数据的 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

我还检查了另一个我可以访问的文件,该文件的所有者是一长串数字和字母。

我尝试将一个文件的所有者从更改为AdministratorsDESKTOP-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终端。

之后您可以随时将存储库添加到您选择的软件中。

相关内容