Je viens de lancer un serveur ec2 et j'ai mis tout le code php sur le serveur et j'ai besoin de changer les permissions pour qu'un utilisateur ne puisse pas aller sur le site comme http:example.com/admin
et voir la liste des fichiers php....Dois-je changer les permissions sur l'ensemble du dossier ou sur chaque fichier ou y a-t-il une procédure récursive pour modifier les permissions sur l'ensemble du dossier ou sur chaque fichier ? -R
Je pense qu'ils sont tous actuellement en 777 ... ce qui est mauvais.
Réponses
Trop de publicités?Si vous utilisez Apache, le fait de cacher des éléments pour qu'ils ne soient pas listés est généralement géré dans un .htaccess ou dans le fichier configuration apache et non avec les autorisations du système de fichiers.
Pour empêcher les gens de voir quels fichiers se trouvent dans un répertoire, avec Apache, il suffit de désactiver l'option "Indexes" dans le fichier Annuaire directive. Vous pouvez également modifier la valeur par défaut à l'aide d'un fichier .htaccess, mais pour un serveur de production, la valeur par défaut doit être "no indexes".
En ce qui concerne les autorisations de fichiers, je préconise de passer presque tout en lecture seule, ou en lecture et exécution si nécessaire (544 ou 554). Laisser des droits d'écriture sur des fichiers qui n'ont pas besoin d'être écrits, c'est s'exposer à des problèmes.
Pour modifier rapidement les permissions de tous les fichiers d'une arborescence de répertoires (et oui, 777 est un niveau de permission horriblement mauvais à leur accorder), vous aurez besoin d'une commande telle que
find ./ -exec chmod go-w {} \;
Cette opération passe en revue de manière récursive tous les fichiers et dossiers de ce sous-répertoire et supprime l'accès en écriture pour les personnes qui n'en sont pas propriétaires.
Vous pouvez également utiliser
find ./ -type f -exec chmod -x {} \;
pour supprimer le bit exécutable de tous les fichiers qui ne sont pas des répertoires. Apache n'en a pas besoin pour exécuter les scripts.