Uprawnienia z Git Post-Receive

Mam lokalnie skonfigurowany git i na moim serwerze i utworzyłem „post-receive”, więc kiedy wykonuję push do serwera na żywo, powinien to sprawdzić w katalogu hostów wirtualnych na stronie.

#!/bin/sh
GIT_WORK_TREE=/var/www/domainname/public_html/ git checkout -f

Jednak, gdy próbuję wykonać moje naciśnięcie, udaje mu się wyjść z urządzenia głównego, ale podczas próby utworzenia tych plików na moim głównym serwerze WWW otrzymuję błędy odmowy dostępu.

na przykładremote: error: unable to create file index.php (Permission denied)

Błędy te mają dla mnie sens ze względu na sposób, w jaki skonfigurowałem serwer. Wyłączyłem dostęp do roota i utworzyłem nowego użytkownika, który został dodany do sudoers poprzez visudo - następnie ustawiłem klucze SSH dla tego użytkownika. Używam tego użytkownika do wypychania zmian git na serwer.

Problemem jest, jak sądzę, ten użytkownik, z którym się łączę, nie ma uprawnień do zapisu w katalogu wirtualnych hostów. Wszystkie moje pliki w tych folderach są własnością www-data (mój użytkownik nginx) z tą samą grupą.

Jakie jest rozwiązanie? Stwórz innego użytkownika z kluczami SSH, aby połączyć się z nim tylko dla git, który ma wyższe uprawnienia lub czy istnieje sposób na przyznanie sudo takich umiejętności po otrzymaniu?

Przepraszam za bardzo długie pytanie, ale chciałem być absolutnie pewien, co zrobiłem.

questionAnswers(1)

yourAnswerToTheQuestion