J'essaie de comprendre comment configurer les autorisations de fichiers sur mon serveur. J'ai lu le guide génial https://serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have-on-a-linux-webserver .
1. visiteurs de mon site web
Le guide indique
Les utilisateurs anonymes sont les visiteurs de votre site Web. Bien qu'ils ne disposent pas des autorisations nécessaires pour accéder directement aux fichiers, ils peuvent demander une page Web et le serveur Web agit en leur nom. Vous pouvez limiter l'accès des utilisateurs anonymes en faisant attention aux autorisations dont dispose le processus du serveur Web. Sur de nombreuses distributions Linux, Apache s'exécute en tant qu'utilisateur www-data, mais cela peut être différent. Utilisez ps aux | grep httpd ou ps aux | grep apache pour voir quel utilisateur Apache utilise sur votre système.
J'utilise XAMPP sur mon ordinateur portable. Si j'entre ps aux | grep httpd
je reçois
adam 6635 0.0 0.0 21292 960 pts/1 S+ 15:51 0:00 grep --color=auto apache
Donc, Apache s'exécute en tant que adam
. De plus, j'ai un fichier appelé test2.php
avec l'autorisation suivante:
-r-------- 1 adam adam 24 Dez 31 15:20 test2.php
Donc, seul le propriétaire du fichier peut le lire. Mais comme Apache est le propriétaire, je pensais que si je demandais le fichier dans mon navigateur, je devrais pouvoir le lire.
Cependant, j'obtiens l'erreur suivante
Avertissement: Inconnu: échec de l'ouverture du flux: autorisation refusée dans Inconnu à la ligne 0.
Erreur fatale: Inconnu: Échec d'ouverture requise '/home/adam/www/site/test2.php' (include_path = '.: / Opt / lampp / lib / php') dans Unknown on line 0
Mais la citation ci-dessus ne suggère-t-elle pas que je devrais pouvoir y accéder à cause de
ils peuvent demander une page Web et le serveur Web agit en leur nom.
2. Fichiers PHP
Considérons un fichier php constitué de
<?php
$string = fopen("stuff.txt","r");
le fichier php ne peut-il être ouvert stuff.txt
que si etiff stuff.txt
est lisible par la classe permission other
? Ou serait-il également lisible si Apache est le propriétaire du fichier et a l'autorisation de lecture mais que la classe d'autorisation other
n'a pas d'autorisation de lecture?
other
? J'utilise XAMPP sur mon ordinateur portable sous OS Ubuntu 16.04 - Où puis-je trouver / modifier ces paramètres spécifiques du système d'exploitation?
grep
processus s'exécute en tant que "adam", il ne montre pas un processus Apache. Cela est dû au fait que ce grep se trouvera toujours dans la liste des processus.
execute
autorisations pour le processus du serveur Web.