git post commit hook - rechtenstructuur

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Ijstheefles
  • Registratie: December 2011
  • Nu online
Hoi medetweakers,

Tijdens het live zetten, het online-gooien van een beta-versie of simpelweg 'kijk hier even naar' heb ik nu filezilla gewoon nodig. Nu las ik dat er via git (het versioneringsysteem dat ik gebruik) een post-receive hook mogelijk was.

Ook heb ik per project een eigen gebruiker.
Nu was ik bezig met http://toroid.org/ams/git-website-howto, maar de volgende vraag werpt zich op:

ik heb op dit moment een git user zonder wachtwoord die de git pushes accepteerd.
Deze website-verdeelde-users zouden dus allemaal, samen met de git user in 1 groep moeten komen, en vervolgens moet ik de websites allemaal minimaal 775 rechten chmodden.

Is er nog een andere, minder rottige manier om dit voor elkaar te krijgen, of hoe doen jullie dit?

Zojuist ook geprobeerd om met 775 rechten de post-receive hook werkend te krijgen terwijl git in de groep met de betreffende project-user zat. Dit werkte niet. Alleen met 777 werkt de post-receive hook, waardoor het stug lijkt dat git de post-receive hook doet.
Iets met ACL dit was een quick and dirty google actie

http://wonkabar.org/2011/06/28/git-and-acl/ dit was een probleem met de combinatie en geeft inzicht
Ik zie even niet in waar de connectie tussen mijn probleem en de door jou gegeven link zich bevindt.
[edit1] ts 'opgeruimd' + info toegevoegd

[ Voor 55% gewijzigd door Ijstheefles op 22-04-2012 18:58 . Reden: TS verduidelijkt. Hoop dat hier meer pap van te maken is ]


Acties:
  • 0 Henk 'm!

  • Ijstheefles
  • Registratie: December 2011
  • Nu online
Denk dat deze nu wel een bumpje mag.

Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Misschien moet je je topicstart duidelijker maken want ik kan er niets van maken.

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • EnderQ
  • Registratie: Januari 2005
  • Laatst online: 03-10 12:34
Iets met ACL dit was een quick and dirty google actie

http://wonkabar.org/2011/06/28/git-and-acl/ dit was een probleem met de combinatie en geeft inzicht

Acties:
  • 0 Henk 'm!

  • Ijstheefles
  • Registratie: December 2011
  • Nu online
Deze mag inmiddels wel een bumpje gok ik zo.

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Alsnog is het niet duidelijk wat nou precies je probleem en je vraag is, niet echt bumpwaardig nog dus.

Acties:
  • 0 Henk 'm!

  • Ijstheefles
  • Registratie: December 2011
  • Nu online
Mental schreef op woensdag 25 april 2012 @ 00:52:
Alsnog is het niet duidelijk wat nou precies je probleem en je vraag is, niet echt bumpwaardig nog dus.
Goed, we zullen nog een poging wagen:

Tijdens het live zetten, het online-gooien van een beta-versie of simpelweg 'kijk hier even naar' -php projectje, heb ik nu filezilla gewoon nodig. Nu las ik dat er via git (het versioneringsysteem dat ik gebruik) een post-receive hook mogelijk was wat de filezilla actie uit handen neemt (Git push )

Ook heb ik per webproject een eigen gebruiker via apache2

Nu was ik bezig met http://toroid.org/ams/git-website-howto, maar de volgende vraag werpt zich op:

ik heb op dit moment een git user zonder wachtwoord die de git pushes accepteerd.
Deze website-verdeelde-users zouden dus allemaal, samen met de git user in 1 groep moeten komen, en vervolgens moet ik de websites allemaal minimaal 775 rechten chmodden.

Is er nog een andere, minder rottige manier om dit voor elkaar te krijgen, of hoe doen jullie dit?

Want ik wil dus kunnen zorgen dat ik met b.v. git push web, de bestanden zowel in git zet op de server, als bestanden in de documentroot van het betreffende project op de server zet.

Alleen moeten de bestanden in de documentroot dus stiekem ge-chowned worden naar de gebruiker die het project runt, en met git post-receveive hook is dit dus altijd git.

Zojuist ook geprobeerd om met 775 rechten de post-receive hook werkend te krijgen terwijl git in de groep met de betreffende project-user zat. Dit werkte niet. Alleen met 777 werkt de post-receive hook, waardoor het stug lijkt dat git de post-receive hook doet.

Hoe zorg ik ervoor, zonder de bestanden in de betreffende documentroot de chmodden naar 775( of nog erger), dat ik met een git post-receive hook (of iets vergelijkbaars) geen filezilla meer hoef te gebruiken? Rekening houdend met het feit dat ieder project z'n eigen user heeft.

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
Zie http://stackoverflow.com/...owned-by-a-different-user

Voeg dus toe aan /etc/sudoers:
gituser ALL=(projectuser) NOPASSWD: /path/to/git
Pas je post-recieve script aan naar:
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org
sudo -u projectuser git checkout -f
Het chmodden moet je doen omdat de gituser dus eigenaar is van de bestanden aangezien die user de files neerzet.
Met bovenstaande zorg je er voor dat hij de git checkout draait onder de user die het project moet gaan draaien en dus niet de verkeerde owner aan de files koppelt.

edit: achteraf handmatig een chown / chgrp doen op alle files zou ook al wonderen doen; kan je ook gewoon in je post-receive script doen.

[ Voor 37% gewijzigd door Mental op 25-04-2012 19:30 ]


Acties:
  • 0 Henk 'm!

  • Ijstheefles
  • Registratie: December 2011
  • Nu online
Dat ga ik van't weekend even testen... zie ook dat ik op het verkeerde aan het googlen was ;x

Iig bedankt!
Pagina: 1