1 votes

suexec échoue les scriptalias sans logs

J'essaie d'installer gitolite 3 sur un serveur apache2. J'ai donc besoin d'exécuter un CGI script appartenant à git:git . Ma configuration pour y parvenir (basée principalement sur este ) est :

<VirtualHost myserver.com>
  ServerName myserver.com
  ServerAlias git
  SuexecUserGroup git git
  ScriptAliasMatch "(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}\.(pack|idx)) | git-(upload|receive)-pack))$" \
  /srv/www/gitolite_suexec_wrapper.sh/$1
</VirtualHost>

Le problème que j'ai est qu'à chaque fois qu'une requête correspond à mon alias stript regexp, le client reçoit un 403 et mes journaux d'erreurs apache (réglés sur le niveau de débogage) me disent ce qui suit :

client denied by server configuration: /srv/www/gitolite_suexec_wrapper.sh

Mon serveur apache2 a l'utilisateur wwwrun et le groupe www. Le module suexec est en cours d'exécution, donc je teste que tout va bien comme ceci :

su -c "/usr/sbin/suexec2 true" wwwrun
suexec policy violation: see suexec log for more details

Donc cet utilisateur peut lancer suexec. Auparavant, j'avais de mauvaises permissions sur mon /srv/www/gitolite_suexec_wrapper.sh et avait des lignes connectées /var/log/apache2/suexec.log Maintenant, je n'ai rien, donc je suppose que mes droits sont correctement configurés en ce qui concerne suexec et l'enveloppe script.

Et je ne suis toujours pas sûr si ce script doit appartenir à wwwrun:www o git:git le propriétaire du script que je veux qu'apache2 exécute. Je suppose que de aide suexec qu'il devrait être wwwrun:www J'ai essayé les deux et ça n'a pas marché.

su -c "/srv/www/gitolite_suexec_wrapper.sh" wwwrun

Donne une sortie, donc je pense que mes permissions sont définies correctement sur ce script.

Que dois-je également vérifier ? Qu'est-ce que j'ai fait de mal ?

Merci d'avance pour votre aide !

0voto

jolivier Points 141

Ok j'ai trouvé la solution, j'ai dû accorder l'accès au fichier script comme ceci (dans le même virtualhost) :

<Directory "/srv/www">
  <Files "gitolite_suexec_wrapper.sh">
    Order allow,deny
    Allow from all
  </Files>
</Directory>

Et puis c'est bon.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X