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

Mak*_*s_F 7 permissions ubuntu windows-10 windows-subsystem-for-linux

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

在我的 PC 中,我有 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
Run Code Online (Sandbox Code Playgroud)

在父路径中我看到

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
Run Code Online (Sandbox Code Playgroud)

相比之下,在 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
Run Code Online (Sandbox Code Playgroud)

在 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)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么磁盘上文件的权限不同。可能是因为我从 Ubuntu(双启动)创建/编辑了其中一些,而一些从 Windows 创建/编辑?

如何解决问题以便我可以访问文件?

我没有尝试chmod磁盘,因为它很大,我不想冒险破坏任何文件,在我看来这可以解决症状而不是权限问题的根本原因。

谢谢


编辑

在 Biswapriyo 评论之后,我更好地查看了可以访问和无法访问的两个文件。

我检查了文件属性,在详细信息选项卡下我看到这两个文件的所有者不同:

  • 我可以访问的文件有所有者 DESKTOP-1CEE3H9\MyUser
  • 我无法访问的文件有所有者 Administrators

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

我尝试将一个文件的所有者从 更改AdministratorsDESKTOP-1CEE3H9\MyUser,看起来我现在在 WSL 中看到了正确的权限。

这可能有关系吗?

Mak*_*s_F 6

我注意到 Windows 上文件的所有者是“管理员”。

我通过此链接将其更改为我的用户,WSL 开始授予适当的权限。

总结一下这里的步骤:

左键单击 ->“属性”选项 ->“安全”选项卡 ->“高级”按钮 ->“所有者”旁边的“更改”按钮 -> 在输入字段中输入您的用户名并按“检查名称”按钮

然后按确定直到关闭所有窗口

我仍然不确定为什么我可以在 Windows 中访问它们,但不能在 WSL 上访问。


小智 6

解决方法:

\n

sudo chmod a+rwx /path/to/file在终端中输入内容,替换/path/to/file为您想要授予每个人权限的文件,然后按Enter

\n

您还可以使用该命令sudo chmod -R a+rwx /path/to/folder向文件夹及其中的每个文件和文件夹授予权限。x如果您不希望文件可执行,请忽略任一命令中的 。

\n

来源:https ://smallbusiness.chron.com/give-permissions-ubuntu-33174.html

\n