You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code Dev Container构建/打开失败:Permission denied(os error 13)

Rust+Postgres Dev Container 权限问题解决指南

这是Dev Container跨环境(WSL2到原生Ubuntu)运行时的常见权限问题,核心原因是:原生Ubuntu上克隆代码时,文件默认以root用户创建(或克隆过程继承了宿主root权限),而Dev Container默认使用vscode用户运行,导致该用户无权限修改项目文件或创建目录,最终触发Permission denied(os error 13)错误。

可行解决方法

1. 调整宿主项目目录权限

在Ubuntu宿主机器的项目根目录执行以下命令,将文件所有者改为当前宿主用户,避免容器内权限冲突:

sudo chown -R $USER:$USER .

重新打开Dev Container后,容器内的vscode用户会继承宿主用户的权限,拥有项目文件的读写权限。

2. 临时以root用户运行容器(不推荐长期使用)

修改.devcontainer/devcontainer.json,添加以下配置:

"remoteUser": "root"

此方法会让容器以root用户启动,直接绕过权限问题,但会降低容器运行的安全性,仅适合临时调试场景。

3. 容器启动时自动修正权限

在.devcontainer/postCreateCommand中添加权限调整命令,确保vscode用户拥有项目目录的完整权限:

sudo chown -R vscode:vscode /workspaces/your-project-name

替换your-project-name为实际项目名称,这样每次创建容器时会自动完成权限修正,无需手动操作。

环境差异说明

WSL2默认的文件权限映射机制和原生Ubuntu不同,WSL2会自动调整挂载文件的权限,匹配Windows用户与Linux用户的映射关系,因此不会出现这类权限问题;而原生Ubuntu严格遵循Linux权限模型,克隆或复制文件时容易出现所有者不匹配的情况,进而导致容器内权限异常。

内容的提问来源于stack exchange,提问作者Mopparthy Ravindranath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:29:53