1 votes

Permissions des utilisateurs et des groupes, comment fonctionnent-elles ?

Je suis en train de créer mon site et je dois déplacer quelques fichiers. J'ai créé un simple script PHP script qui implique des choses comme mkdir(), copy() etc...mais je reçois des erreurs de permissions.

Après avoir réglé les dossiers affectés sur 777, tout fonctionne, mais sur mon ancien site, j'étais réglé sur 755.

Si mon utilisateur dans Plesk est Johnnie, et que l'utilisateur sur le fichier est Johnnie (et que le groupe est psacln), le script PHP script ne devrait-il pas avoir accès ? Si ce n'est pas le cas, comment dois-je définir l'utilisateur pour que mon navigateur puisse déplacer les fichiers ?

1voto

jcollum Points 10236

Qu'entendez-vous par accès ? - pour voir les attributs du fichier ; - pour ouvrir le fichier à la lecture ; - ouvrir le fichier en écriture ; - ouvrir le fichier en lecture/écriture ; - ouvrir le fichier pour l'exécuter.

Veuillez noter que le nom d'utilisateur dans l'application PHP n'est pas le même que l'utilisateur Unix, même s'ils ont le même nom.

Veuillez noter que apache/php fonctionne en tant qu'utilisateur apache, www, www-data, nobody.... Ceci est configuré dans la configuration d'apache. Trouvez ceci avec :

egrep -r '^User|^Group' /etc/{apache*,http*}

Avant toute modification, effectuez une sauvegarde.

Trouvez un groupe commun auquel appartiennent votre utilisateur et l'utilisateur d'apache. Si ce n'est pas le cas, créez-en un.

Modifiez le groupe des fichiers et des dossiers que vous avez dans DocumentRoot pour qu'il corresponde à ce groupe :

chown -R myuser:commongroup /var/www/

Modifiez le SUID des dossiers de manière à ce que les nouveaux fichiers appartiennent à ce groupe :

find /var/www/ -type d -print0|xargs -0r chmod g+rxs
chmod -R u+r,g+r,o= /var/www/

Pour les dossiers et les fichiers auxquels vous voulez donner accès à PHP pour l'écriture, faites :

chmod g+w /var/www/folder/subfolder   /var/www/folder/file.txt

0voto

jammus Points 1796

Si vous utilisez php via cgi ou mod-php sans correctifs/modules supplémentaires pour gérer les permissions, votre script php est probablement exécuté avec le compte du serveur web. Il s'agit souvent de www-data, nobody ou d'un autre compte non root.

Vous devrez probablement ajouter au groupe l'utilisateur sous lequel le serveur web fonctionne, ou créer un groupe incluant le serveur web et tous les autres utilisateurs qui ont besoin d'y accéder.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X