Permissions with Git Post-Receive
After following the Git tutorials, I have taken it a step further and created a 'post-receive' so that when I do a push to the live server it should then checkout to the virtual hosts directory of the website. #!/bin/sh GIT_WORK_TREE=/var/www/domainname/public_html/ git checkout -f However, when I try to do my push, it goes out the master successfully but I get permission denied errors when trying to create those files on my server web root. e.g. remote: error: unable to create file index.php (Permission denied) These errors actually make sense to me due to the way I have setup my server as per D.O.'s great how to articles. I disabled root access and created a new user that is added to the sudoers through visudo. Then setting up SSH keys for this user. I use this user for pushing out my git changes to the server. The issue is, I believe, that this user that I connect to push doesn't have the rights to write to the virtual hosts directory. All my files in these folders are owned by www-data (my nginx user) with the same group. What is the solution? Create another user (SSH key) to connect with just for git that has higher permissions or is there a way to grant the post-receive sudo like abilities? Apologies for the very long winded question but wanted to be absolutely clear with what I did.