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

WSL2中Laravel Sail执行Artisan命令创建文件后权限错误求助

问题原因

通过Laravel Sail执行Artisan命令创建模型时,命令是在Docker容器内部运行的,容器默认以root用户执行进程,所以生成的文件所有者是root用户。而你在VS Code中使用的是WSL的普通用户tarky,即便给了777权限,由于文件所有者不匹配,还是会触发写入权限拒绝的问题。手动在VS Code创建的文件所有者是tarky,所以能正常编辑。

解决办法

方法1:让Sail以当前WSL用户身份运行(推荐)

  • 打开项目根目录的.env文件,添加以下两行:
    WWWUSER=$(id -u)
    WWWGROUP=$(id -g)
    
  • 重启Sail容器:
    sail down && sail up -d
    
  • 之后再用sail artisan make:model TestModel创建文件,生成的文件所有者会和你WSL的tarky用户一致,VS Code可以正常编辑保存。

方法2:修复现有文件的所有者

如果已经创建了无法编辑的文件,直接修改整个项目的所有者为当前用户:

sudo chown -R tarky:tarky /home/tarky/projects/qr-project/

执行后就能正常编辑现有文件了。

注意

别用sudo chmod -R 777这种方式,权限过于宽松存在安全风险,而且无法从根本上解决所有者不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:57:16