WSL Bash在Windows桌面创建文件权限被拒,如何授权?
解决WSL访问Windows桌面文件夹的权限问题
这当然可行!WSL和Windows文件系统的权限交互确实容易踩坑,我来一步步帮你搞定这个问题:
为什么会出现权限拒绝?
Windows的文件系统在WSL里是通过DrvFS映射的,默认的挂载权限设置可能没给你的Linux用户足够的读写权限,再加上OneDrive文件夹自带同步特性,权限管控会更严格,导致你无法创建文件。
解决方案一:临时调整Windows文件夹权限(快速生效)
直接在Windows系统里修改桌面文件夹的权限:
- 找到路径
C:\Users\zolta\OneDrive\Desktop,右键点击文件夹 → 属性 → 切换到安全选项卡 - 点击编辑 → 添加,输入你的Windows用户名(zolta),点击检查名称确认后添加
- 给这个用户分配完全控制的权限,点击应用并确定
- 重新打开WSL,再尝试创建文件应该就没问题了
解决方案二:修改WSL挂载配置(永久生效)
如果不想每次都手动调整Windows权限,可以修改WSL的DrvFS挂载选项,让所有Windows路径默认给你的Linux用户足够权限:
- 在WSL终端里编辑
/etc/wsl.conf文件(没有的话就创建):sudo nano /etc/wsl.conf - 粘贴以下内容:
[automount] options = "metadata,umask=0022,fmask=0022"metadata:让WSL能识别和保留Linux风格的权限设置umask=0022:设置默认文件权限为755(所有者读写执行,其他用户读执行),目录权限同理
- 保存退出(按
Ctrl+O,回车确认,再按Ctrl+X) - 在Windows的命令提示符或PowerShell里运行
wsl --shutdown,关闭WSL实例 - 重新打开WSL,此时
/mnt/c下的所有路径权限都会生效,你可以正常创建修改文件了
针对OneDrive的特殊注意事项
如果以上方法还不行,检查OneDrive的设置:
- 确保桌面文件夹不是仅在线状态:右键OneDrive里的桌面文件夹 → 始终保留在此设备上,这样WSL才能访问本地的实际文件,而不是在线占位符
- 暂时关闭OneDrive同步,修改权限后再重新开启,避免同步过程中权限冲突
避坑提醒
- 尽量不要用
sudo在Windows路径下创建文件,否则文件所有者会变成root,后续普通用户访问会再次遇到权限问题 - 如果还在使用WSL1,建议升级到WSL2,它在文件系统交互上更稳定:
(把wsl --set-version Ubuntu 2Ubuntu换成你实际的WSL发行版名称)
内容的提问来源于stack exchange,提问作者Zoltan Szokodi




