diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 8165d6c2eeaf258ef6bc13a6e3cc0ac0933bff04..27c5bc2270ce1cba7fc0a173b6f35cbb95e80028 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -66,6 +66,10 @@ class Settings < Settingslogic
       git_host['base_path'] || '/home/git/repositories/'
     end
 
+    def git_hooks_path
+      git_host['hooks_path'] || '/home/git/share/gitolite/hooks/'
+    end
+
     def git_upload_pack
       if git_host['upload_pack'] != false
         true
diff --git a/lib/tasks/gitlab/backup.rake b/lib/tasks/gitlab/backup.rake
index 8e2fa2c0133a0d8468f2bc8dac6683f86ebfd608..4dffd1ada65ae0b8c432ca6f70e23c921fe1c9e2 100644
--- a/lib/tasks/gitlab/backup.rake
+++ b/lib/tasks/gitlab/backup.rake
@@ -145,6 +145,7 @@ namespace :gitlab do
           permission_commands = [
             "sudo chmod -R g+rwX #{Gitlab.config.git_base_path}",
             "sudo chown -R #{Gitlab.config.ssh_user}:#{Gitlab.config.ssh_user} #{Gitlab.config.git_base_path}",
+            "sudo chown gitlab:gitlab #{Gitlab.config.git_base_path}**/hooks/post-receive"
           ]
           permission_commands.each { |command| Kernel.system(command) }
           puts "[DONE]".green
diff --git a/lib/tasks/gitlab/status.rake b/lib/tasks/gitlab/status.rake
index 02d27d4bbcc793144e4d6f054149ddec1174b5ca..91456189d53238ef8cef85082e1e8776c3928142 100644
--- a/lib/tasks/gitlab/status.rake
+++ b/lib/tasks/gitlab/status.rake
@@ -56,7 +56,7 @@ namespace :gitlab do
         return
       end
 
-      gitolite_hooks_path = File.join("/home", Gitlab.config.ssh_user, "share", "gitolite", "hooks", "common")
+      gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common")
       gitlab_hook_files = ['post-receive']
       gitlab_hook_files.each do |file_name|
         dest = File.join(gitolite_hooks_path, file_name)
diff --git a/lib/tasks/gitlab/write_hook.rake b/lib/tasks/gitlab/write_hook.rake
index 098331b8cd7ac465d1a59819abcc1cdff5eaebd6..9ec9c8383e21bd7429155e5050eacb2e0a390953 100644
--- a/lib/tasks/gitlab/write_hook.rake
+++ b/lib/tasks/gitlab/write_hook.rake
@@ -2,7 +2,7 @@ namespace :gitlab do
   namespace :gitolite do
     desc "GITLAB | Write GITLAB hook for gitolite"
     task :write_hooks => :environment  do
-      gitolite_hooks_path = File.join("/home", Gitlab.config.ssh_user, "share", "gitolite", "hooks", "common")
+      gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common")
       gitlab_hooks_path = Rails.root.join("lib", "hooks")
 
       gitlab_hook_files = ['post-receive']