Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour,

TL;DR :

Comment faire pour que PHP (user 'http') puisse accéder aux fichier contenus dans /var/services/homes

Version longue :

Mon objectif est de pouvoir utiliser mon NAS comme :

1) Server git (commandes git depuis un client)

2) Avoir un affichage web sympa de mes dépots (type github)

J'ai installé le paquet officiel Git server qui m'a installé la commande git.

Ensuite j'ai créé un user git avec l'interface d'admin (il a bien son home dans /var/services/homes/git).

J'ai modifié le /etc/passwd pour mettre /bin/sh comme shell (par défaut c'est nologin).

J'ai copié la clé ssh de mon client dans le .ssh/authorized_keys du home de git sur le NAS.

Avec tout ça j'arrive à créer des dépot directement dans le home du user git (mkdir, git init --bare, ...)

Comme ça je peux faire :

git clone git@mon-nas:mon-depot.git

Les clones, push et les pull fonctionnent bien.

Jusque là tout va bien, c'est ensuite que ça se complique.

Pour la visu web je souhaite utiliser Gitlist.

J'ai donc activé le Service Web sur le NAS, puis créé un repertoire git dans /var/services/web/ et y ai déposé puis détarré gitlist-0.5.0.tar.gz.

J'ai créé à partir de l'exemple fourni la config suivante :

[git]
client = '/usr/bin/git' ; Your git executable path
default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '/var/services/homes/git' ; Path to your repositories
                                           ; If you wish to add more repositories, just add a new line
[...]

Il y a d'autres lignes ([...]) mais elles ne sont pas significatives.

Lorsque j'essaye d'accéder à gitlist, il me dit "Please, edit the config file and provide your repositories directory".

Dans le code php, le problème vient d'un is_dir sur "/var/services/homes/git" qui ne renvoie pas 1.

Si au lieu de "/var/services/homes/git", je met un répertoire directement accessible, exemple "repos" (/var/services/web/git/repos), là ça fonctionne (mais ce n'est pas ce que je veux).

J'ai vu dans /etc/php/conf.d/user-settings.ini que "open_basedir" contenait "/var/services/homes" (et d'autres choses), donc je ne comprend pas pourquoi ça fonctionne pas.

J'ai essayé de créer des liens symboliques (/var/services/web/git/repos -> /var/services/homes/git) et ça ne fonctionne toujours pas.

EDIT:

J'ai fait un test simple, j'ai créé un fichier php faisant un

is_dir('/var/services/homes/git');

ça ne fonctionne pas (ne renvoie pas 1) et dans la log /var/log/httpd/user-error_log, j'ai la chose suivante :

[Wed Feb 18 18:08:13 2015] [error] [client 192.168.xxx.xxx] FastCGI: server "/php-fpm-handler" stderr: PHP message: PHP Warning:  is_dir(): open_basedir restriction in effect. File(/var/services/homes/git) is not within the allowed path(s): (/etc.defaults:/etc:/usr/syno/synoman:/tmp:/var/services/tmp:/var/services/web:/var/services/homes) in /volume1/web/php-tests/index.php on line 6

Curieux, car le message dit que /var/services/homes/git n'est pas dans les chemins autorisés, sachant que dans la liste des chemins autorisés, il y a bien /var/services/homes (à la fin).

Quelqu'un aurait-il une explication ?

Merci d'avance,

Florian

Modifié par superbob
Posté(e)

J'ai trouvé sur le forum US quelqu'un qui a le même problème que moi :

http://forum.synology.com/enu/viewtopic.php?f=20&t=89535

Cela se produirait seulement quand on veut accéder aux répertoires sous /var/services/homes.

Effectivement, lorsque j'utilise un autre répertoire au lieu de "/var/services/homes/git", ex : "/var/services/git" (qui est un lien vers /volume1/git), ça fonctionne mieux.

La problème reste quand même mystique car je n'ai aucune explication.

Et si j'utilise cette solution de contournement, ça me pose d'autres probèmes ... (accès ssh sur le user git).

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.