: mkdir data: permission denied“ 怎么处理)
Gogs 启动报 session(start): mkdir data: permission denied 怎么处理【免费下载链接】gogsThe painless way to host your own Git service项目地址: https://gitcode.com/GitHub_Trending/go/gogsGogs 以系统服务方式启动后日志里出现下面这行错误进程随即退出[Macaron] PANIC: session(start): mkdir data: permission denied这是 Gogs 启动阶段创建会话数据目录时权限不足导致的属于 官方 troubleshooting 文档 中记录的已知问题。下面给出定位原因、修复权限以及通过配置改数据目录两种处理方式并说明如何验证。报错原因运行用户对二进制所在目录没有写权限Gogs 启动时会在Gogs 二进制所在的目录下创建一个名为data的子目录用来存放应用数据包括会话数据。对应的默认配置见 conf/app.ini; The path for storing application specific data. APP_DATA_PATH data默认值是相对路径data即“与二进制同目录下的data”。如果运行 Gogs 的用户对该目录没有写权限最常见于把 Gogs 装在受管用户的家目录之外、或以git等专用账户以 systemd 服务方式运行、而目录属主不是该用户时mkdir就会报permission denied进程直接 PANIC。因此排查方向只有一个确认运行 Gogs 的账户能否在二进制所在目录里创建子目录。处理方式一给运行用户补上目录写权限主路径确认二进制目录。例如以 systemd 方式部署时安装目录通常是/home/git/gogs见 run-as-service 文档 中的服务模板ls -ld /home/git/gogs确认运行 Gogs 的用户。systemd 服务模板中的关键项是Usergit Groupgit WorkingDirectory/home/git/gogs ExecStart/home/git/gogs/gogs web也就是说进程以git用户身份运行。按官方文档给出的结论修复确保运行 Gogs 的用户上面的git有权在 Gogs 二进制所在目录中创建子目录。通常做法就是把二进制目录的属主改为该用户例如sudo chown git:git /home/git/gogs如果你使用的运行用户或安装目录不同请替换为实际的用户名和目录。处理方式二把数据目录指到可写位置可选替代如果你不希望 Gogs 在二进制目录下生成data例如二进制目录被刻意设为只读、或运行用户无权触碰该目录可以在自定义配置中改写[server] APP_DATA_PATH。根据 configuration primerGogs 读取两层配置内置于二进制的默认值以及custom/conf/app.ini的覆盖值custom/默认位于二进制旁边的custom/目录。在custom/conf/app.ini中加入[server] APP_DATA_PATH /home/git/gogs-data并保证运行 Gogs 的用户对/home/git/gogs-data有写权限目录需提前创建或由 Gogs 创建时父目录可写。run-as-service文档中的注意事项也要求在app.ini中为数据目录和数据库文件使用绝对路径避免服务以不同工作目录启动时相对路径解析到别处。两种处理方式二选一即可方式一解决“该目录不可写”本身方式二绕开该目录。验证重启后检查服务状态与日志修复后重启服务并确认进程不再 PANICsudo systemctl restart gogs # 检查状态 sudo systemctl status gogs -l # 查看日志 sudo journalctl -b -u gogs判断标准systemctl status gogs显示服务处于 running且没有再次进入 failed 状态日志中不再出现session(start): mkdir data: permission denied取而代之的是 Gogs 的正常启动输出按 run-as-service 文档 的验证步骤在浏览器访问你的 Gogs 地址页面能正常打开即说明服务已恢复。如果换成APP_DATA_PATH方案后仍报错检查两点新路径是否为绝对路径以及运行用户对父目录是否有权限创建该目录。【免费下载链接】gogsThe painless way to host your own Git service项目地址: https://gitcode.com/GitHub_Trending/go/gogs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考