Git无法创建文件权限被拒绝

时间:2012-08-22 16:35:30

标签: linux git ubuntu

我正在使用Amazon EC2来托管通过git部署到服务器的网站。我之前在同一种EC2 Ubuntu Linux服务器实例上使用过这个教程,它运行得很完美。但是,当我尝试推送到服务器时,我收到以下错误跟踪:

教程:http://toroid.org/ams/git-website-howto

跟踪:

$ git push origin master

Counting objects: 5, done.
Writing objects: 100% (3/3), 250 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: unable to create file index.html (Permission denied)
To ssh://ubuntu@myserv.er/var/www/website.git
   8068aac..04eae11  master -> master

目前我在存储库中只有一个文件,即index.html

错误跟踪显示正在拒绝创建该文件的权限。请你告诉我我哪里出错了?

4 个答案:

答案 0 :(得分:5)

我相信如果你跑

 sudo chown -R git:git /srv/git/ 

这来自How to fix permission denied for .git/ directory when performing git push?

答案 1 :(得分:4)

您可能没有完成本教程的这一部分:

  

首先,工作树(上面的/var/www/www.example.org)必须是运行钩子的用户可写的(或者用户需要sudo访问权来运行git checkout -f或类似的东西)。

答案 2 :(得分:1)

仅供参考,我有这个错误,因为我做了一个钩子来更新单独的网站根目录中的文件。例如:

/var/www/project.git  # (where we push updates)
/var/www/project.com  # (where the website exists)

我忘了将组权限添加到project.com目录。这使得一切正常,一旦我完成下一次提交/推送,index.html出现在/var/www/project.com目录中!

完整代码,假设您将用户添加到"开发人员"组:

sudo chmod -R g+ws /var/www/project_name.git
sudo chgrp -R developers /var/www/project_name.git
sudo chmod -R g+ws /var/www/project_name
sudo chgrp -R developers /var/www/project_name

共享存储库的git设置:

git config core.sharedRepository group

答案 3 :(得分:0)

您的防病毒软件或某些程序可能正在阻止该文件写入您的文件夹。如果仔细观察,您将意识到除拒绝访问权限的文件以外,所有其他文件均已创建。 您可能拥有的保护软件正在阻止某些文件类型的创建,并且无论您登录的用户类型是什么,除非禁用该软件,否则不会创建该文件。

因此,对于那些正在运行的Windows,请检查您的防病毒软件是否不在此保护之下。