Droits sur serveurs : conseils svp

Salut,

Bon, je continue gentillement mon apprentissage de l’administration d’un serveur distant et ça se passe pas trop mal. Je commence à pigé quelque chose :wink:

Je me pose quelques questions concernant les droits :

En faite je me demande quel droits donner aux scripts php (de ma facture ou non) que je place dans mes répertoires virtuels.

Si je prend n’importe quel CMS, celui-ci à besoin de lire et écrire les fichiers et répertoires. Ça nous donne un “rw”. J’ai donc fait :

chmod -R u+rw /home/user/public_html

Ce dont je ne suis pas sure : Et-je bien fait de donner les droits en lecture et écriture à l’utilisateur ? Est ce qu’il ne vaut mieux pas donner ces droits au groupe ? J’ai du mal à déterminer quel type d’utilisateur représente les scripts php ?

Voila, j’espère être clair, c’est pas évident à expliquer !?

Merci d’avance
Vincent

[quote=“Gecko”]J’ai du mal à déterminer quel type d’utilisateur représente les scripts php ?
[/quote]

Les scripts PHP s’exécutent en général sous l’UID www-data:www-data pour une installation d’Apache2 à la méthode Debian.

Tu trouveras ces valeurs dans le fichier de config d’Apache (/etc/apache2/apache2.conf).

Si tu veux autoriser www-data à certains droits sur un répertoire hors arborescence http ou open_basedir, il suffit de rajouter www-data dans le groupe qui a les droits voulus sur ce répertoire.

ok, donc il faut que je m’assure que mon répertoire “user” appartienne bien au groupe www-data et je fait un :

Si je comprend bien ?

Non, c’est le contraire. Si tu veux que le serveur httpd puisse ouvrir des fichiers appartenant à, par exemple, toto groupe toto, tu rajoutes simplement www-data dans le groupe toto et tu vérifies les droits du groupe dans le répertoire toto.

Fais attention aussi à la barrière open_basedir de PHP qui pourrait empêcher Apache d’accéder à des fichiers hors arborescence http.

:confused: quelque chose à dut m’echapper là ??? Je vais re potasser les droits parce que là c’est effectivement à l’opposé de se que je pensais connaître ?

Lorsqu’un script PHP tente d’ouvrir un fichier, il se présentera dans le répertoire cible sous l’identité du sevreur httpd (www-data par défaut). Si cet UID (www-data) n’a pas les droits dans le répertoire cible pour le fichier donné, il n’y arrivera pas et ton script PHP te balancera une erreur du genre "fail to open file…’

Tu rajoutes simplement www-data (l’UID) dans le groupe propriétaire de la cible (fichier /etc/group) et tu t’assures que la cible a les droits requis pour le groupe: min 740 pour la lecture 760 pour lecture-écriture.

hello,

Les directives sont moins tu places de droits mieux c’est, autrement dit tu places des restrictions partout et tu debrides au fur et a mesure…