VScode 无法将文件保存在我的 WSL2 主文件夹中

Posted

技术标签:

【中文标题】VScode 无法将文件保存在我的 WSL2 主文件夹中【英文标题】:VScode unable to save files inside my WSL2 home folder 【发布时间】:2020-09-10 09:04:31 【问题描述】:

我正在尝试让 WSL2 为我的 Web 项目开发工作,这让我发疯了!

基本上,我有两个选择。 1.将我的项目文件保存到c盘并使用WSL访问那些(这使得响应非常慢) 2. 将我的项目文件保存到/home/,这使得项目运行超级流畅,但我无法用VSCode编辑这些文件。

错误如下:

Failed to save 'DefaultSeeder.php': Unable to write file 'vscode-remote://wsl+ubuntu-20.04/home/lucas/Projetos/API/src/database/seeds/DefaultSeeder.php' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/home/lucas/Projetos/API/src/database/seeds/DefaultSeeder.php')

【问题讨论】:

【参考方案1】:

好吧,事实证明我很愚蠢并发布了一个愚蠢的问题。

在尝试让这个该死的东西工作好几个小时后,我能够通过将文件夹的所有权设置给我的用户来做到这一点。

这是将所有权更改为当前登录用户的shell sn -p:

$ sudo find /~~folder-path~~/ -type d -user root -exec sudo chown -R $USER:  +~

【讨论】:

@Lucas Pacheco 当我在我的文件夹路径上运行它时,我得到“find: missing argument to '-exec'。在你的 sn-p 末尾是否有我错过的替换? 我得到 .当我尝试进行构建时,访问路径被拒绝你是否也遇到过这个问题。 @user2132190 你需要添加一个 \;最后【参考方案2】:

下面是另一个命令,可以为您的用户提供足够的文件写入权限:

sudo chown -R myuser /path/to/folder

来自https://github.com/microsoft/vscode-remote-release/issues/1008

【讨论】:

【参考方案3】:

我遇到了同样的问题,花了几个小时才找到这个可行的解决方案。 对我来说,这似乎是正确的,因为它不会产生以下问题:1. 之后发送给 git 的文件权限太宽泛;2. 更改 ubuntu 配置以适应 windows 环境(耦合到 windows 用户)。

我在 github 上找到了这个解决方案的来源。感谢saltazaur! https://github.com/microsoft/WSL/issues/4260#issuecomment-729594527

解决问题的步骤:

通过 Windows“程序和功能”重置(或重新安装)Ubuntu 发行版 注意:如果您的主目录中已有数据,请将其复制到 windows 之前 打开 Ubuntu 并按照初始设置(创建用户) 添加文件“/etc/wsl.conf”:
cd /etc
sudo touch wsl.conf
sudo nano wsl.conf
从microsoft docs复制并粘贴内容 使用 CTRL+X > "Y" > ENTER 保存 重新启动 wsl(或 windows,确定;))

ubuntu 下次启动时,会应用wsl.conf 中的设置。

在这种情况下,重要的部分是以下行:

options = "metadata,umask=22,fmask=11"

它设置,所有新创建的文件都将使用 umask 22 (chmod 775) 和 fmask 11 (chmod 644)

此设置也适用于 VSCode 和 PHPStorm 等 IDE。 快乐的编码 - 终于! ^^

【讨论】:

【参考方案4】:

这帮我解决了

sudo find /home/ -type d -user root -exec sudo chown -R $USER:   \;

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于VScode 无法将文件保存在我的 WSL2 主文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

Xdebug 3.0 WSL2 和 VSCode - 有效的配置

WSL2_07 VSCode配置并编写Python程序

wsl2 中的文件物理存储在哪里? [关闭]

带有 WSL2 的 VSCode - 由于对 ping 没有响应而延迟启动

Linux vscode 无法保存 修改文件夹权限

为啥 VS Code 无法在我的程序中导入 timeit 模块?