V14 Permissions sur les fichiers du répertoire racine (chmod)

Bonjour à tous,
J’ai migré une version 13 en v14 et dans la page « infos sécurité » j’ai un warning sur
Permissions sur les fichiers du répertoire racine: Certains fichiers ou répertoires ne sont pas en mode lecture seule.

J’ai pour habitude de mettre les droits suivants sur mon install.

sudo chmod -R 755 /var/www/my-dolibarr/
sudo chown -R www-data:www-data /var/www/my-dolibarr/htdocs

ce qui me donne pour les différents répertoires :

755 www-data:www-data documents
755 www-data:www-data htdocs
755 www-data:www-data logs
755 www-data:www-data scripts
755 www-data:www-data sessions

puis après install ou MAJ, pour sécuriser l’install :

sudo chmod 400 /var/www/my-dolibarr/htdocs/conf/conf.php
sudo chmod 400 /var/www/my-dolibarr/documents/install.lock

Cela ne semble pas suffisant pour la v14.
Quelle est la config la meilleure pour respecter les préconisations de sécurité ? Je vois de tout sur le forum et même du 777 :scream:

Merci pour votre aide

Bonjour,

Honnêtement, c’est une bonne question, je suis très intéressé par la réponse !
Je n’ai jamais réussi à avoir une installation sans le warning…
J’ai même essayé de comprendre le code PHP de cette fonction mais sans résultats…

Pour référence éventuelle, une issue avait été ouverte sur le même sujet récemment : security setting: file permission · Issue #19032 · Dolibarr/dolibarr · GitHub

Je ne me rappelle plus les détails, mais crois qu’on avait trouvé une solution pour avoir des permissions « correctes ».

J’ai regardé le lien que tu donne mais l’échange n’est pas très clair.
J’ai l’impression qu’ils mettent :

  • htdoc : 755
  • htdoc/* : 744
  • sauf htdoc/custom : 755

je vais tenter pour voir mais les warnings portaient aussi sur des fichiers/dossiers de custom donc ca me parait pas très cohérent.

Bon j’ai apparemment un sans-faute avec cela :

sudo chmod -R 555 /var/www/my-dolibarr/htdocs/
sudo chmod -R 400 /var/www/my-dolibarr/documents/install.lock
sudo chmod -R 400 /var/www/my-dolibarr/htdocs/conf/conf.php

ce qui me donne les droits suivant sur les fichiers/dossiers :

ls -lah htdocs
dr-xr-xr-x 79 www-data www-data 4.0K Nov 24 16:09 htdocs
....

ls -lah htdocs/*
dr-xr-xr-x  30 www-data www-data 4.0K Nov 24 16:09 includes
-r-xr-xr-x   1 www-data www-data  31K Nov 24 16:09 index.php
....
3 « J'aime »

Bonjour lozange,
Comme j’ai des centaines de fichiers signalés comme n’étant pas en lecture seule (voir copie d’écran), et que j’ai commencé à les modifier un par un… c’est un travail de Titan! Je voulais savoir si Dolibarr fonctionnait effectivement avec le réglage ci-dessus (555, 400 et 400)? Et le réglage CHMOD ci-dessus est-il appliqué seulement au dossier ou également à son contenu?

Bon… du coup il y a une partie bête dans ma question :crazy_face:. Evidemment le -R (récursif) concerne tous les dossiers d’un répertoire.
Mais par contre j’aimerais bien être sûr que les dossier et fichiers contenus continueront de fonctionner… Tu peux nous confirmer qu’en prod ça marche? Merci d’avance!

Oui, pour le moment çà marche pour moi.
Mais je n’ai pas de plug-in actif et je n’ai pas fait de montée de version depuis.
Donc je ne sais pas comment cela se comporte.
Si je rencontre un souci, je mettrais à jour ce fil de discussion.

Je serais d’avis de tout réinstaller, quel bordel !

Je ne suis pas sûr que ce soit un souci de « tout réinstallé » j’ai le même souci sur une install from scratch.
C’est, je pense, une configuration standard des droits sur les fichiers/dossiers à modifier, ou une demande trop contraignante de Dolibarr sur ces droits.
Le mieux serait qu’une personne expérimentée en config Apache et droit linux nous donne les prérequis à mettre en place pour avoir un environnement sécurisé sans pour autant « tout bloquer ».

Le problème est quand même étrange. Les fichiers de l’archive Dolibarr ont les bons droits par défaut. Il faut faire attention à bien décompresser l’archive sur un système linux (à distance sur le serveur), pas localement sur un windows et transférer ensuite sinon les droits sont perdus.

Voici un tuto que j’avais fait, il n’est pas pour Apache mais pour NGINX mais le déroulement devrait être semblable, je ne touche pas aux droits des fichiers Dolibarr bien que je prépare le répertoire d’accueil, l’utilisateur avec un peu de sécurité d’accès : Comment installer Dolibarr sur un VPS OVH Debian 11

1 « J'aime »

Est-ce qu’une install en local pour vérifier les droits de base sur les dossiers/fichiers attribués par Dollibar d’origine provenant de la décompression zip serait une bonne idée? Parce qu’effectivement, comme je n’ai pas pu décompresser le fichier zip directement sur le serveur mutualisé, j’ai décompressé sur ma machine → et ensuite envoyé sur le ftp. Le problème vient peut-être de là?

Sympa le tuto sous NGINX :+1:
Je vais refaire un essai d’Install depuis zéro pour voir si ça change.
Peux-tu nous donner les droits que tu as sur tes dossiers / sous-dossiers / fichiers ?
Si je ne me trompe pas, tout doit être identique dans le htdocs sauf le conf.php (et le install.lock dans documents/)

En effet ton envoi par FTP a du faire « sauter » les droits, il faut au moins aller redéfinir ceux des 2 fichiers vu plus haut.
Pour un serveur mutualisé jette un coup d’œil sur le site de @libremaster il y a un tuto spécifique apparemment : Comment installer Dolibarr v14 dans un hébergement mutualisé OVH ?
Peut-être que cela suffit pour ne pas avoir les warning.

Merci pour les infos. Je vais regarder!

Pour info j’ai été obligé de repasser le dossier custom en 755 sinon il n’est pas possible d’ajouter un module via l’interface web

sudo chmod -R 755 /var/www/my-dolibarr/htdocs/custom/

Cela n’influ pas sur l’alerte de sécurité

C’est vrai que le module builder nécessite que l’utilisateur du serveur web ait le droit d’écrire dans custom. Quoi qu’il arrive, le module builder n’est pas vraiment fait pour être utilisé en production (typiquement, on développe un nouveau module en local, pas en prod).

Je ne parlais pas du Module Builder (qui a sûrement également besoin des droits), mais de l’onglet « Déployer/Installer un module externe » qui sert à ajouter un nouveau module téléchargé depuis le Dolistore.
Il n’est utilisable qu’avec un droit d’écriture dans htdocs/custom/ ce qui paraît logique puisqu’il va aller installer le module dedans

Je viens de le faire sur une nouvelle installation en v14. Je confirme que les commandes permettent d’être conforme par rapport au diag de décurité.

sudo chmod -R 555 /var/www/my-dolibarr/htdocs/
sudo chmod -R 400 /var/www/my-dolibarr/documents/install.lock
sudo chmod -R 400 /var/www/my-dolibarr/htdocs/conf/conf.php
sudo chmod -R 755 /var/www/my-dolibarr/htdocs/custom/

1 « J'aime »

Les fichiers ont du coup le droit d’exécution ce qui n’est pas nécessaire.
Peut-être il faut corriger :

sudo chmod -R a-x /var/www/my-dolibarr/htdocs/
sudo chmod -R a+X /var/www/my-dolibarr/htdocs/

Seuls les répertoires auront le droit ‹ x ›.
Entre les deux commandes, Dolibarr sera bloqué temporairement
Le X majuscule dit que seuls les répertoires auront le droit x.