8797 sujets

Développement web côté serveur, CMS

Hello,

Juste une petite question concernant les autorisations. Je n'y connais pas grand chose et tout ce que je sais c'est que si je mets le chmod d'un fichier php à 777, j'obtiens une erreur 500.

Du coup je passe tout en 755 mais je me demande si c'est sécurisé ou pas.


Quelqu'un pourraît m'expliquer quel chmod utiliser dans les cas les plus courants ou me donner un lien pour bien comprendre le principe ?

Merci !
Salut,

Tu peux trouver la signification des chiffres sur la page wikipédia. Le chmod te permet de gérer les droits sur les fichiers/dossiers de ton serveur, le premier chiffre correspond au propriétaire, le deuxième au groupe et le dernier les autres.

A toi de voir ce que tu veux donner comme droits à tes utilisateurs Smiley cligne
Jusque là j'avais compris mais je n'arrive pas à comprendre ce que signifie propriétaire, groupes et utilisateurs.

Si je mets par exemple chmod à 000, cela signifie qu'il sera impossible de faire quoi que ce soit avec le fichier c'est ça ? Je ne pourrai donc que le modifier via mon client FTP ?

Et à quoi correspondent les groupes ?

Et quelle est la différence entre Lire et Exécuter ?
Lorsqu'un navigateur affiche un fichier php, est-ce qu'il le lis ou l'exécute ?


Tant de questions. Smiley langue
Si tu mets 000, tu vas avoir des problèmes car tu ne pourras plus du tout toucher le fichier, quelque soit l'utilisateur...

Lire c'est juste voir le contenu, alors que exécuter c'est lancer un programme pour utiliser le fichier, comme un fichier .exe.... Un fichier vidéo tu le lis, tu ne l'exécute pas c'est le logiciel qui s'exécute pour lire le fichier.

C'est le moteur php qui lit le fichier, il ne l'exécute que en son sein.

Je ne sais plus à quoi correspondent exactement les groupes..

Je te dis peut être des choses fausses, mes cours remontent à il y a 3 ans Smiley langue
Ok donc si je comprends bien, un fichier n'a jamais besoin d'être exécutable dans le cadre d'un site, à part peut-être dans certains cas très particulier.

Pour ce qui est de l'écriture, j'imagine que ce n'est nécessaire que pour les fichiers que php pourrait écrire (genre un fichier txt, xml, jpg, etc.) ?

Et la lecture c'est pour tout le monde.


Cette manière de faire te semble correcte ? Smiley langue
Super !

Maintenant, j'aimerais juste comprendre cette histoire d'utilisateurs.

Si par exemple j'ai un script qui écris un fichier csv qui doit pouvoir être téléchargeable (ce qui est le cas dans un des mes projets actuels) est-ce que seul le Propriétaire doit avoir les droits d'écriture ou est-ce que les groupes et les utilisateurs doivent l'avoir aussi ?

Suivant ma logique, c'est le serveur qui écrit, et je n'arrive pas à comprendre à quoi correspond le serveur dans ces trois catégories, est-ce qu'il y a un rapport ?


Merci de m'aider , je commence à mieux comprendre. Smiley smile
Ok bah merci en tout cas, je vais fouiller le net histoire de trouver les infos qu'il me manque. Smiley smile
bonjour,

je vais essayer de faire simple .

Comme tu t'en doute il y a contrairement à Window des droits différents (lire écrire et exécuter) lié à différents status (propriétaire, groupe, autres).

Si tu poses ces questions c'est que tu es sous un *nux ...(je te mettrais bien 100 kiwis rien que pour cela mais je n'en ai pas le pouvoir Smiley langue ).

En ligne de commande fait un "$ls -l" ; tu as ainsi une lecture sur les droits de chaque répertoire et fichier.

# un fichier au tout le monde à tous les droits (777)
rwx rwx rwx
(1)   (2)  (3)


r : read
w: write
x: eXecutable

pour 1 (le propriétaire) : il peut lire écrire et exécuter le fichier
pour 2 (le groupe) : il peut lire écrire et exécuter le fichier
pour 3 (les autres) : ils peuvent lire écrire et exécuter le fichier

si tu enlèves le "w" dans le premier tiers "r-x" , le fichier devient lisible et exécutable pour le propriétaire mais il ne peut plus écrire !

Bon çà je crois que tu avais compris Smiley lol

Si on va un peu plus loin : Chaque utilisateur appartient à un groupe et par défaut c'est le groupe du propriétaire (celui qui crée le fichier) qui est affecté au fichier (répetoire).
c'est également indique aprè sun "$ls -l"

-rw-rw-r--   1 kzone kzone 
# premier kzone c'est le propriétaire le deuxième kzone c'est le groupe


On modifie le groupe avec la commande "chown" (own = posseder)
On modifie le propriétaire avec la commande "chmod"


$chmod +x ...
# on ajoute la possibilité d'exécuter le fichier au proprio !


En continue ... Smiley cligne
On peut trier les permissions en 3 parties comme on a vu "rwx rwx rwx" (utilisteur(u),groupe(g),autre(o)).
les utilisateurs sont les centaines , le groupe les dizaine, les autres les unités .. hein !!! Smiley confus

a écrit :

utilisateur groupe autres
lecture écriture exécution lecture écriture exécutable lecture écriture exécutable
400 200 100 40 20 10 4 2 1


Pour mettre les permissions "r-x rwx r--" : 400 (r) + 100(x) + 40(r) + 20(w) + 10(x) +4(r) = 574

$chmod 574 ...


Concernant les groupes, il faut les voir comme un groupe de partage entre utilisateur .
Dans ton cas un "775" ne doit pas poser de problème de sécurité.

j'admets que c'est un peu déroutant au début Smiley biggol

j'espère que cela t'aidera

PS : 500 : erreur interne du serveur
Est-ce vraiment un problème de droit d'accès !?
Modifié par kzone (13 Aug 2009 - 22:53)
Désolé de répondre aussi tardivement mais c'était le temps de lire 15 fois ton message. Smiley biggol

J'ai bien compris le principe.
Pour ce qui est des lignes de commande, je t'avoue que je n'y connais rien de rien, je suis sous Mac (noooon mes kiwiz ! Smiley biggol ) et je n'ai pas de serveur dédié, donc pas trop de raison d'y toucher.
Je compte me mettre à Linux bientôt car il me semble que c'est un bon plus quand on est développeur.

Pour ton explication, j'ai enfin compris ce qu'était les groupes donc merci. Smiley smile
Pour les rw, etc., j'utilise un client FTP pour changer les autorisations, ce qui revient au même me semble-t-il.



Quand je mets un chmod de 777, j'obtiens toujours une erreur interne, quel que soit le serveur que j'utilise, donc j'en ai déduis qu'il y avait un rapport (une protection mise en place par l'hébergeur ?)