Les droits /répertoires du serveur

  les scripts exécutables par Apache


Les droits d’accès aux fichiers, c’est dire qui peut faire quoi !

Mais en fait, sur un site Web, il y a de nombreux sens et réglages à ce niveau, que ce soit dans Spip (voir Les autorisations / gestion des droits), ou autour, les droits relatifs à la gestion du serveur, qui se traduisent par des droits d’accès aux fichiers.

Quelques pistes pour s’y retrouver :
- les droits des divers auteurs (visiteur, rédacteur, administrateur, restreint ou webmestre) : Les autorisations / gestion des droits,
- les autorisations spécifiques données dans un site personnalisé,
- les droits d’écriture sur serveur (par votre compteFTP)
- et les droits système des fichiers et répertoires sur le serveur....
(ce sont souvent ces derniers qui posent problème, ou trou de sécurité).

 
 
 
 
 
 
 
 

Vous avez parcouru la liste de droits ci-dessus ; ceux-ci sont pratiquement toujours autorisés en informatique, par un couple login / password ; quant à la gestion
(qui "positionne" ces droits), cela dépend du système concerné.

Tout dépend ensuite du système informatique récepteur : on ne parlera pas des droits d’accès à SPIP, qui relèvent de la rubrique dédiée ROLES DES AUTEURS SUR LE SITE, ni des droits d’usage FTP (voyez Serveur, base de données, ftp, à quoi ça sert ?), mais des droits des dossiers, qui peuvent en général être fixés/modifiés par FTP !.

Nous allons effleurer le sujet (complexe) des droits d’exécution sur le serveur, que vous pouvez entrevoir avec certains clients FTP : ce sont en général des droits Unix/Linux.
Pourquoi s’y intéresser lorsqu’on débute sur SPIP ? Parce que malheureusement certaines situations de blocages sont simplement dues à une erreur ou anomalie à ce niveau, sans que les messages d’erreur ne soient particulièrement explicites...

Ces droits sont conditionnés par le serveur supportant SPIP, en général un Apache tournant sur Linux : en conséquence, les droits d’exécution de votre CMS sont ceux d’un "process" Apache, qui doit seul pouvoir lire ou ecrire vos dossiers de travail.

Or, quand vous atteignez votre serveur par FTP, les droits affichés sont ceux du "process" FTP exécutant Pre-requis Techniques, complètement différent d’Apache : cela peut s’avérer assez perturbant.

  Les droits conseillés sur les répertoires de SPIP

En général, on conseille deux masques de droits, 0644 et/ou 0604.

Ces deux masques respectifs permettent à la gestion du serveur de laisser, lisibles et exécutables, ou peu accessibles, le fichiers concernés..

Et cela se complique dans le cas des dossiers, les droits (correspondants) sont 0755 et 0705 : tout laisser faire (0777 ou drwxrwxrwx ) n’est pas recommandé, si vous ne souhaitez pas voir votre site immédiatement hacké !

JPEG - 69.9 ko
Un traitement "radical" récursif !

Bien évidemment, vous penserez à redéfinir les droits en les appliquant de façon récursive [1] : ..

Et pour bien comprendre ces droits, il faut se souvenir qu’ils correspondent à l’usage vu depuis le process serveur : ce n’est pas exactement la même chose que de votre point de vue extérieur...

En effet, et pour "simplifier" les choses, selon la politique de votre hébergeur, les droits apparents en FTP ne seront peut-etre pas les mêmes que ceux de votre Apache au travail...par exemple (ou voir aussi Rétablir les droits des dossiers) :

JPEG - 101.8 ko
FileZilla affiche les droits du process FTP sur SPIP

A l’installation de SPIP, le process Apache SPIP contrôle ses [2] droits d’accès sur les répertoires de travail :
 : voila son message d’erreur sur le même site à l’instant !

JPEG - 53.8 ko
Le process Apache SPIP y nécessite l’accès en écriture !

En l’occurence, il est probable que les deux process (Apache et FTP) sont dans deux groupes d’utilisateurs Linux différents ; les droits en sont donc disjoints....

JPEG - 33.3 ko
Deux Groupes d’utilisateurs disjoints : FTP et SPIP
exemple du site ci-dessus : le fichier INSTALL a été créé par transfert du serveur FTP ;
les fichiers suivants sont générés par le serveur Apache SPIP !
(ils n’ont pas les memes comptes Propriétaires...)

Pour diagnostiquer ce problème, vous pouvez par FTP défaire le fichier ./config/connect.php en le renommant [3] avant de relancer une installation ; vous aurez le message ci-dessus [4] en cas de souci !

La solution sera donc de rajouter les droits d’écriture pour le process Apache, selon le modèle ci-dessus, à toutes les arborescences des répertoires de travail, tandis que les répertoires de programmes SPIP sont en lecture seule [5], et bien sur les répertoires sensibles inaccessibles grâce aux .htaccess écrits par SPIP.

A noter : donner des droits étendus sur le dossier ./config n’est pas nécessaire, si vous avez déjà créé le fichier connect.php et si vous n’utilisez pas de plugin modifiant mes_options.

En plus, les serveurs présentent parfois un temps de latence, avant de vous répercuter les mises-à-jour appliquées (voir les problèmes de cache).

 Quelques exemples

- pour du mutualisé chez ovh :

  • Répertoire www : 705
  • fichiers : 404 ou 604 si les fichiers sont amenés à être modifiés.
  • Répertoires : 705

- Pour un hébergement mutualisé chez Lautre.net c’est :

  • fichiers : 440 ou 640
  • répertoires : 750

- Pour un hébergeur étrange(r), on sera peut-être obligé de passer les répertoires de travail SPIP en 777 : cela peut devenir gênant pour la Sécurité d’accès pour les droits /répertoires du serveur..!

Nota Bene : [6] attention aussi au contrôle des droits d’accès géré par le contrôle d’accès Apache, grâce aux divers .htaccess posés par SPIP...


 En annexe

Il pourrait vous arriver de ne rien pouvoir faire !
Alors, prenez votre temps = parfois, les choses ont pris un peu de temps pour se mettre en place (cf. ce délai de latence évoqué plus haut).

Pour vous aider à intervenir, si vraiment c’est un problème, voici un exemple de script php qui vous autorise par exemple a copier les fichiers transmis sur ./tmp/upload, dans les documents joints en images :

  1. <?php
  2. // pour identifier l'arborecence de votre site sur le serveur
  3. echo realpath(".");
  4.  
  5. // phpinfo();
  6.  
  7. //ex.: lister les images chargées par l'ajout de documents
  8. system("ls -a /var/www/vhosts/monsite.com/httpdocs/tmp/upload/jpg/*.jpg \n");
  9.  
  10. //ex.: créer un sous-répertoire dans IMG
  11. system("mkdir /var/www/vhosts/monsite.com/httpdocs/IMG/jpg \n");
  12.  
  13. //ex.: donner les droits sur IMG
  14. system("chmod a+w /var/www/vhosts/monsite.com/httpdocs/IMG/jpg/ \n");
  15.  
  16. //ex.: transférer ces fichiers dans le dossierdes images jointes
  17. system("mv /var/www/vhosts/monsite.com/httpdocs/tmp/upload/jpg/*.jpg /var/www/vhosts/monsite.com/httpdocs/IMG/jpg/ \n");
  18.  
  19. // attention, vous utilisez ces lignes, à vous risques et périls....
  20. // pensez a effacer ces fichiers .php avant de laisser votre site !!
  21. ?>

Télécharger

P.S. : supprimez soigneusement ces fichiers de votre racine, avant de laisser votre site, sinon un pirate se fera un plaisir de vous ....


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1Si vous vous posez des questions à ce niveau-là, plus d’explications relève d’une aide compétente qu’il vous est vivement recommandé de contacter avant de tout risquer...

[2Les droits Unix du groupe FTP ne sont pas forcement les meme que les drotis d’accès du groupe Apache, selon la configuration du serveur !

[3Ce fichier contient les codes de connexion a la base de données... à ne pas perdre

[4Regardez le source ./ecrire/install/etape_chmod.php pour informations

[5Sauf si vous comptez utiliser spip_loader pour mettre à jour votre version de SPIP !

[6Un article du Carnet avec de nombreux exemples, meme si déjà ancien !


Liens visibles seulement pour les inscrits.

Article publié le 15 février 2012, et actualisé en juin 2015 .

Répondre à cet article