Déploiement
Déploiement • Chapitre 5 : Introduction aux serveurs et à l'hébergement

Gestion des fichiers et des permissions

Maîtrisez le système de permissions Linux (lecture, écriture, exécution) et les propriétaires (chown / chmod). Garantissez que Nginx puisse lire vos fichiers sans compromettre la sécurité.

👤
Utilisateur & Groupe

Chaque fichier appartient à un propriétaire (user) et un groupe (group) précis.

🔢
Triplets de Droits

r (lecture = 4), w (écriture = 2), x (exécution = 1). Exemple : 755 ou 644.

🌐
Utilisateur www-data

Le compte système restreint sous lequel tournent Nginx et Apache.

🛡️
Protection .env 600

Seul le propriétaire a le droit de lire le fichier de variables secrètes.

permissions-hardening.sh
# 1. Attribuer la propriété des fichiers à l'utilisateur de déploiement et au groupe web
$ sudo chown -R debian:www-data /var/www/mon-projet

# 2. Configurer les droits standards sur les répertoires (755 : rwxr-xr-x)
$ sudo find /var/www/mon-projet -type d -exec chmod 755 {} ;

# 3. Configurer les droits standards sur les fichiers ordinaires (644 : rw-r--r--)
$ sudo find /var/www/mon-projet -type f -exec chmod 644 {} ;

# 4. Verrouillage absolu du fichier contenant les secrets de production (.env)
$ sudo chmod 600 /var/www/mon-projet/.env
$ ls -l /var/www/mon-projet/.env
-rw------- 1 debian www-data 342 Oct 11 11:20 /var/www/mon-projet/.env

Guide Approfondi & Architecture Système

1. Décoder la Notation des Droits : Le Calcul Octal

Quand vous tapez ls -l, vous observez des chaînes comme -rwxr-xr-x :
  • Le 1er caractère indique le type : - (fichier), d (dossier).
  • Les 3 suivants : droits du Propriétaire (User).
  • Les 3 suivants : droits du Groupe (Group).
  • Les 3 derniers : droits des Autres (Others).
Valeur mathématique des droits : r = 4 | w = 2 | x = 1
• 7 (4+2+1) = Lecture + Écriture + Exécution
• 5 (4+0+1) = Lecture + Exécution (indispensable pour entrer dans un dossier)
• 4 (4+0+0) = Lecture seule

2. Le Piège Mortel du 'chmod 777'

Face à une erreur 403 Forbidden, de nombreux débutants exécutent chmod -R 777 /var/www.
Pourquoi c'est une faille critique : 777 donne le droit à TOUT processus du serveur (y compris un script attaquant) de modifier, écraser ou injecter du code malveillant dans tous vos fichiers ! Ne faites JAMAIS de chmod 777 en production.

Tableau de Référence des Permissions Recommandées en Production

Type d'ÉlémentDroits RecommandésNotation SymboliqueJustification Sécurité
Dossiers applicatifs755rwxr-xr-xPermet à Nginx de naviguer et lire les sous-dossiers
Fichiers statiques (HTML, JS, CSS)644rw-r--r--Lisible par le web, modifiable uniquement par le dev
Fichier .env (secrets)600rw-------Strictement invisible pour les autres utilisateurs du système
Scripts exécutables (.sh)750rwxr-x---Exécutable par le propriétaire et le groupe administrateur