YACS Le livre de Yacs Guide d'installation et de mise à jour

PrécédentSuivantIndex

Comment résoudre les problèmes de permissions sur les fichiers ?

Lorsqu'on l'installe, YACS écrit nombre de fichiers contenant les paramètres de configuration, les profils des utilisateurs, des images, des scripts PHP.
Tous ces fichiers doivent être munis des permissions nécessaires pour parachever convenablement votre installation.
Même si certains hébergeurs règlent eux-mêmes la question des permissions, la plupart vous en laisseront le soin. En lisant la page suivante, découvrez les prémisses de l'art du "chmod".

Vous ne l'ignorez sans doute pas, chacun des répertoires et des fichiers d'un système Unix est soumis à l'identité de son utilisateur et aussi au groupe auquel appartient cet utilisateur.
Vous n'ignorez pas non plus que la plupart des hébergeurs et des fournisseurs d'accès utilisent un système 'Unix-like' pour la gestion des comptes de leurs client.
Un fichier, ou un répertoire, y est donc signalé à la façon d'Unix par des permissions spécifiques concernant les doits de lecture, d'écriture et d'exécution sur le fichier pour l'utilisateur ('user' ou encore 'owner').
Le groupe auquel appartient l'utilisateur est aussi pris en compte, de même que toute personne extérieure au groupe, mais disposant d'un compte sur l'ordinateur.

La commande ls liste ces permissions.
Lorsqu'elle est utilisée avec l'option -l elle liste aussi les groupes d'utilisateurs associés avec les dits fichiers dont nous avons parlé plus haut. Ces commandes obéissent dans le cas présent à la fameuse commande chmod, dont beaucoup de monde a plus ou moins entendu parler et qui signifie simplement 'change mode'. C'est à dire que par cette commande on peut changer les permissions sur les fichiers et les répertoires en fonction de l'utilisateur, du groupe auquel il appartient, etc..

La commande chmod détermine, nous l'avons dit, les permissions accordées aux fichiers.
Ces permissions ont des correspondants numériques équivalents à ceux qui sont listés par la sous-commande 'ls', évoquée plus haut. Pour résumer: [*] 7 signifie la possibilité qu'un fichier soit lu, écrit et exécuté...(read, write, execute) [*] 6 signifie la possibilité que le fichier puisse seulement être lu et écrit (read, write) [*] 4 le fichier peut être lu (read) [*] 0 l'accès au fichier n'est pas autorisé (forbidden access)

Habituellement, l'information concernant l'utilisateur et le groupe auquel il appartient (user/group) est donnée par l'intermédiaire du client FTP qui sert à placer les fichiers YACS sur le serveur distant.

Dans le meilleur des cas, un serveur web correctement configuré exécutera vos scripts.
Le serveur distant disposera par la grâce du FTP ,exactement des mêmes permissions que celles que vous accordez vous-mêmes aux fichiers. Ainsi, vous pourrez, si vous le désirez, 'chmoder' tout à 700

Mais parfois, le système selon lequel le serveur web fonctionne utilise des comptes dédiés, tels que apache/www-data. Dans ce cas le programme du serveur web ne possède, de fait, aucun droit d'accès à vos dossiers. Comment surmonter ce douloureux problème? [title]Solution N°1. Vous tentez de personnaliser votre compte[/title] Demander au gestionnaire du système de faire fonctionner vos srcipts selon les informations de votre compte, comme indiqué ci-dessus.
Pour des informations pratiques sur ce point, voir http://www.suphp.org [title]Solution N° 2. Ouvrez tout[/title] Vous pouvez essayer de chmoder tout à 707, pour donner des permissions maximum à tout le monde, y compris au fameux programme interne de votre système serveur (web daemon). Etant donné que votre compte est peut être empêché de le faire, vérifiez ensuite les résultats de votre tentative à l'aide de la commande 'ls -l. Comme ceci:
cd votre_répertoire_d'installation
chmod -R 707 .
ls -l
[title]Solution N°3. Employez le groupe même utilisé par le programme interne du serveur web[/title] Cette autre option consiste à changer l'information de groupe de tous les dossiers, pour réutiliser celle du programme système du serveur (web daemon). Vous devrez alors donner des permissions maximum au groupe. Par exemple:
cd votre_répertoire_d'installation
chgrp -R www-data .
chmod -R 770 .
[title]Solution N°4. Placez le 'web daemon' dans votre propre groupe[/title] Demandez à l'administrateur de votre système d'hébergement de placer le compte d'utilisateur web du système dans votre groupe et donnez ensuite des permissions maximum à ce groupe.
cd votre_répertoire_d'installation
chmod -R 770 .
[title]Solution N° 5. Le mode 'Safe' - Tentez le tout pour le tout[/title] Si l'environnement PHP est en mode 'safe', vous devriez faire en sorte que le programme HTTP du serveur ait le même uid ou identité - (uid signifie 'user IDentity') que le propriétaire des fichiers et des répertoires. Vous pouvez demander si besoin est, à l'adminstrateur de l'hébergeur, de personnifier votre compte - (voir pour cela la solution N°1). Ou demandez-lui plutôt de changer la propriété du répertoire de YACS. Exemple autorisé seulement aux utilisateurs root:
cd votre_répertoire_d'installation
chown -R www-data .

PrécédentSuivantIndex