Chaque fois que je crée un nouveau file à partir de "eclipse", j'ai besoin d'exécuter ces deux lignes de code pour get l'autorisation r / w:
chmod -R 775 /var/www/folder/filename.extension
Et / Ou
sudo chown -R www-data:www-data /var/www
Et, si je copy certains files sur le dossier de ce server et que je l'accède à partir de l'URL du browser, par exemple:
localhost/folder/filename.extension
J'obtiens une erreur d'autorisation par le server Apache.
Est-ce qu'il n'y a pas moyen pour que je puisse me débarrasser de ce problème?
* Remarque: L'erreur principale se produit lorsque ma fonction move_uploaded_file()
tente de déplacer le file vers le directory /var/www/MyProject/
.
Utilisez le bit SGID.
Faites ceci une fois, et oubliez ce problème:
chmod g+s /var/www/folder
Vous voudrez peut-être faire de même pour tous les sous-dossiers:
find /var/www/folder -type d | xargs chmod g+s
et, juste au cas où:
find /var/www/folder -type d | xargs chgrp www-data
Désormais, tous les files créés sous /var/www/folder/
appartiendront au groupe propriétaire du dossier contenant, quoi qu'il arrive. Cela vous permettra de créer des files ou des dossiers sans vous préoccuper de ne pas appartenir, par exemple, au groupe de données www , comme vous le souhaitez.
Veuillez noter que ceci ne fonctionnera que pour les files ou dossiers créés dans le directory. Si des files sont créés ailleurs et déplacés dans l'arborescence, vous devez quand même modifier la propriété manuellement.
Exemple:
# Create folder that belongs to www-data group $ mkdir test $ chown john.www-data test $ ls -l drwxr-xr-x 2 john www-data 4096 Jun 17 10:14 test # Create a file, check the ownership $ touch test/file1 $ ls -l test/ -rw-r--r-- 1 john users 0 Jun 17 10:16 file1 # Set the SGID bit $ chmod g+s test $ ls -l drwxr-sr-x 2 john www-data 4096 Jun 17 10:19 test # Create a file, check the ownership $ touch test/file2 $ ls -l test/ -rw-r--r-- 1 john users 0 Jun 17 10:18 file1 -rw-r--r-- 1 john www-data 0 Jun 17 10:19 file2
Plus d'infos ici .
Vous pouvez utiliser les ACL par défaut pour atsortingbuer des permissions d'user et de groupe à de nouveaux files et directorys:
setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension
Tout d'abord, j'aimerais souligner que cela devrait être plus précis lorsqu'on pose des questions; Par exemple, quel OS, dissortingbution Linux utilisez-vous, car cela peut accélérer le process de search d'une solution. Cela dit, vous pouvez commencer le dépannage en modifiant récursivement la propriété du dossier spécifique et le contrôle d'access user ( UAC ), comme ceci:
chown domain:www-data /var/www/folder -chR chmod 775 /var/www/folder -cR
REMARQUE : en excluant la barre oblique (/) à la fin du nom du dossier, vos modifications s'appliqueront au dossier et à tout son contenu.
En ce qui concerne les erreurs d'autorisation lors de l'access au file (script?) Dans le browser, vous devez vous assurer que votre user dispose des permissions nécessaires pour servir les files dans apache
. Cela devrait être pris en count en éditant votre file /etc/httpd/*/httpd.conf
et en ajoutant:
User domain Group www-data