Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/01/2022, à 15:28

koriP

Accès à fichiers en dehors de la racine d'un site

Bonjour, j'ai installé il y a peu une solution Nextcloud sur un serveur et j'ai vu quelque chose de très intéressant, il est possible de configurer pour que le dossier data qui contient le contenu des dossiers et fichiers du cloud ne se trouve pas à la racine du site mais en dehors, par exemple dans un dossier parent, ce qui confère au contenu du cloud une couche supplémentaire de sécurité.
Intrigué j'ai voulu faire quelques tests pour faire de même sur mon intranet, ce qui sécuriserait grandement les mises à jours, les dossiers avec fichiers et autres importations se trouveraient désormais en dehors des dossiers qui contiennent les fichiers système intranet, donc protégés à une mauvaise manipulation lors des mises à jours par exemple.
Mais je n'y parviens pas : le serveur n'arrive pas à lire ces fichiers situés dans le dossier parent à la racine (normal pour question de sécurité) mais alors, comment arrive Nexcloud à le faire ?

Hors ligne

#2 Le 26/01/2022, à 07:11

bruno

Re : Accès à fichiers en dehors de la racine d'un site

Bonjour,

L'emplacement du répertoire data de nextcloud doit en principe être défini au moment de l'installation. Si tu veux modifier cet emplacement après-coup c'est beaucoup plus complexe :
https://help.nextcloud.com/t/howto-chan … tion/17170 (solution 1 uniquement !)

Il faut passer en mode maintenance, déplacer me dossier, modifier la configuration de Nextcloud, modifier toutes les entrées de la base de données qui font référence au répertoire data, etc.

#3 Le 26/01/2022, à 12:08

airvb

Re : Accès à fichiers en dehors de la racine d'un site

koriP a écrit :

Bonjour, j'ai installé il y a peu une solution Nextcloud sur un serveur et j'ai vu quelque chose de très intéressant, il est possible de configurer pour que le dossier data qui contient le contenu des dossiers et fichiers du cloud ne se trouve pas à la racine du site mais en dehors, par exemple dans un dossier parent, ce qui confère au contenu du cloud une couche supplémentaire de sécurité.
Intrigué j'ai voulu faire quelques tests pour faire de même sur mon intranet, ce qui sécuriserait grandement les mises à jours, les dossiers avec fichiers et autres importations se trouveraient désormais en dehors des dossiers qui contiennent les fichiers système intranet, donc protégés à une mauvaise manipulation lors des mises à jours par exemple.
Mais je n'y parviens pas : le serveur n'arrive pas à lire ces fichiers situés dans le dossier parent à la racine (normal pour question de sécurité) mais alors, comment arrive Nexcloud à le faire ?

Bjr ,
Peut-être n'ai je pas bien compris.
Mais ds NC il est possible de monter n'importe quel dossier via l'option :External storage

Doc nc a écrit :

"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow users to mount their own external storage services."

Hors ligne

#4 Le 26/01/2022, à 14:27

cqfd93

Re : Accès à fichiers en dehors de la racine d'un site

airvb a écrit :

Bjr ,
Peut-être n'ai je pas bien compris.
Mais ds NC il est possible de monter n'importe quel dossier via l'option :External storage

Modération : merci de respecter la langue du forum qui est le français, pas le SMS.


cqfd93

Hors ligne

#5 Le 30/01/2022, à 17:50

koriP

Re : Accès à fichiers en dehors de la racine d'un site

Bonjour à tous,
En fait mon problème n'est pas Nextcloud, qui fonctionne parfaitement et que j'ai en effet configuré pour avoir accès aux fichiers et dossiers sur un dossier parent de la racine du site.

Et c'est ce que je veux faire en réalité sur un site a moi, que www-data ait accès à certains fichiers sur un dossier parent de la racine du site, c'est à dire changer la racine pour le script en cours et ainsi pouvoir télécharger/afficher des images se trouvant sur un dossier parent de la racine normale du site.
J'ai vu qu'il y a la fonction chroot() en php mais cela me donne une erreur 500.
Sur la doc il est écris ceci :

Php doc a écrit :

Description
chroot(string $directory): bool

chroot() change la racine du script en cours, et la remplace par directory, puis change le dossier courant de travail en "/".

Cette fonction n'est disponible que sur les systèmes GNU et BSD et que si vous utilisez la SAPI CLI, CGI ou Embed. De plus, cette fonction nécessite les privilèges d'administrateur.

Appeler cette fonction ne change pas la valeur des constantes magiques __DIR__ et __FILE__.

Pour que apache ne me retourne pas une erreur 500 il me faudrait utiliser php-cli ? Je vois qu'il y a un paquet php7.0-cli dans les dépots, qui est déjà installé sur mon serveur mais qu'il faudrait que j'utilise les droits administrateur.
Donc comment utiliser php-cli ?

Dernière modification par koriP (Le 30/01/2022, à 17:53)

Hors ligne

#6 Le 31/01/2022, à 12:52

bruno

Re : Accès à fichiers en dehors de la racine d'un site

koriP a écrit :

Et c'est ce que je veux faire en réalité sur un site a moi, que www-data ait accès à certains fichiers sur un dossier parent de la racine du site, c'est à dire changer la racine pour le script en cours et ainsi pouvoir télécharger/afficher des images se trouvant sur un dossier parent de la racine normale du site.

Tu n'as pas besoin de changer la racine du site (il faudrait le faire au niveau de la configuration Apache), tu peux utiliser les fonctions de gestion des fichiers de PHP comme readfile. Nextcloud utilise des bibliothèques WebDAV pour gérer les fichiers.

#7 Le 31/01/2022, à 17:01

mazarini

Re : Accès à fichiers en dehors de la racine d'un site

Avant le readfile, il faut envoyer un header avec le type de fichier.
Il faut également que le path du fichier demandé soit relatif à la racine du répertoire de stockage et vérifié que le path ne contiennent pas de "..".
Le risque est que l'on te demande des fichier ../../../etc/xxxxx pour lire des fichiers "racine des fichier"/../../xxxxx qui correspondrait à /etc/xxxxxx. Il est probable que le fichier ne soit pas autorisé en lecture mais on ne sait jamais.


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne