stworzyłem gołego repo @jak kontrolować własność plików automatycznie pchanych do repozytorium git za pomocą haków commitów?
/srv/repos/test
mogę ustawić własności do wwwrun: www z SUID + bitów GUID ustawić
chown -R wwwrun:www /srv/repos/hub
chmod ug+s /srv/repos/hub
ls -ald /srv/repos/test
drwsrws---+ 10 wwwrun www 4.0K Mar 7 21:28 /srv/repos/hub/
i sklonowany repo do Webroot i zmieniła swoją własność,
git clone /srv/repos/hub /srv/www/siteA
chown -R wwwrun:www /srv/www/siteA
dla wygody zdefiniować zdalne
cd /srv/www/siteA
git remote add HUB /srv/repos/hub
następnie utworzyć post-commit i po aktualizacji haki do przechowywania rzeczy w synchronizacji,
vi /srv/www/siteA/.git/hooks/post-commit
#!/bin/sh
git push HUB
vi /srv/repos/hub/hooks/post-update
#!/bin/sh
cd /srv/www/siteA || exit
unset GIT_DIR
git pull HUB master
exec git-update-server-info
jak mój zwykły użytkownik, i kasa HUB
whoami
locuse
cd ~
git clone /srv/repos/hub WORK
ls -ald WORK
drwxr-xr-x 10 locuse users 4.0K Mar 7 21:44 WORK/
dokonać zmiany, popełnić i pchania,
cd WORK
touch touch_file
ls -al touch_file
-rw-r--r-- 1 locuse users 0 Mar 7 21:44 touch_file
git add -A
git commit -m "add test"
git push
następnie sprawdzając, że hak zwolniony, a zmiana została przesunięta do webroot,
plik tam - zgodnie z oczekiwaniami.
, ale nie jest to własność użytkownika, której chcę, a mianowicie to użytkownik = 'locuse', a nie user = 'wwwrun'.
w tym konkretnym przypadku użytkowej, co jest właściwym sposobem, aby upewnić się, że zamiast tego, by zawsze automatycznie kończy-up z,
ls -al /srv/www/siteA/touch_file
-rw-rw----+ 1 wwwrun www 0 Mar 7 21:45 /srv/www/siteA/touch_file
? tzn. wszystko zawsze jest promowane do/srv/www/siteA tylko jako wwwrun: www.
coś w haku, zgaduję?
wiem, że można dodać
chown -R wwwrun:www /srv/www/siteA
do post-commit, który działa dobrze dla małego drzewa, ale torfowiska na każdym popełnić/aktualizację w dół, jeśli jest duża (co to będzie).
może, gdybym mógł efektywnie nadążyć za bieżącym zatwierdzeniem ...?
proszę umieścić rozwiązanie w odpowiedzi. W odpowiednim czasie możesz zaakceptować odpowiedź. –
w czasie, kiedy to edytowałem, nie pozwalało mi tego robić, oczekując jeszcze 6 godzin ... –