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 - 有效的配置