前言
最近在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,通过调试和查看日志文件找到一行错误:error: cannot open .git/FETCH_HEAD: Permission denied,原因是文件权限问题导致。
问题原因
Permission denied,应该权限问题,到项目 .git 目录下查看文件的用户和组:
发现 FETCH_HEAD 的用户和组都是 root 权限,而发布系统的运行进程是 nobody 用户,所以没有权限执行这个 git 命令:git fetch -q –all
解决办法
于是使用 chown 把该文件用户和组权限都改成 nob