Chapitre 3.5 - Permissions Fichiers
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre le système de permissions Linux
- Lire et interpréter les permissions
- Modifier les permissions avec chmod
- Changer propriétaire et groupe avec chown
Qu'est-ce que les Permissions?
Les permissions Linux contrôlent qui peut lire, écrire ou exécuter un fichier. C'est un système de sécurité fondamental.
Trois niveaux:
- Owner (Propriétaire): Créateur du fichier
- Group (Groupe): Groupe propriétaire
- Other (Autres): Tous les autres utilisateurs
Types de Permissions
r (Read - Lecture)
Pour fichiers:
- Lire le contenu
- Afficher avec cat, less, etc.
Pour répertoires:
- Lister le contenu (ls)
w (Write - Écriture)
Pour fichiers:
- Modifier le contenu
- Écraser le fichier
Pour répertoires:
- Créer des fichiers
- Supprimer des fichiers
x (Execute - Exécution)
Pour fichiers:
- Exécuter comme programme
- Scripts, binaires
Pour répertoires:
- Accéder au répertoire (cd)
- Nécessaire pour naviguer
Lecture des Permissions
Format Long (ls -l)
$ ls -l fichier.txt
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 fichier.txt
Décomposition:
- rwx r-x r-- 1 user group 1024 Jan 1 12:00 fichier.txt
│ ││ ││ ││ │ │ │ │ │
│ ││ ││ ││ │ │ │ │ └─ Nom
│ ││ ││ ││ │ │ │ └────── Taille
│ ││ ││ ││ │ │ └──────────── Groupe
│ ││ ││ ││ │ └───────────────── Propriétaire
│ ││ ││ ││ └─────────────────── Liens
│ ││ ││ │└────────────────────── Autres: r--
│ ││ ││ └─────────────────────── Groupe: r-x
│ ││ │└────────────────────────── Propriétaire: rwx
│ ││ └─────────────────────────── Type: - (fichier)
│ └─────────────────────────────── Type: d (répertoire), l (lien)
Format Octal
# rwx = 111 (binaire) = 7 (décimal)
# r-x = 101 (binaire) = 5 (décimal)
# r-- = 100 (binaire) = 4 (décimal)
# Exemple: rwxr-xr-- = 754
Correspondance:
r= 4w= 2x= 1-= 0
Exemples:
rwx= 4+2+1 = 7r-x= 4+0+1 = 5r--= 4+0+0 = 4---= 0+0+0 = 0
Modifier les Permissions (chmod)
Méthode Symbolique
# Ajouter permissions
chmod u+x fichier.txt # Propriétaire: +x
chmod g+w fichier.txt # Groupe: +w
chmod o+r fichier.txt # Autres: +r
chmod a+x fichier.txt # Tous: +x
# Retirer permissions
chmod u-x fichier.txt # Propriétaire: -x
chmod g-w fichier.txt # Groupe: -w
# Définir permissions
chmod u=rwx fichier.txt # Propriétaire: rwx
chmod g=rx fichier.txt # Groupe: r-x
chmod o=r fichier.txt # Autres: r--
# Combinaisons
chmod u+x,g+w fichier.txt
chmod u=rwx,g=rx,o=r fichier.txt
Symboles:
u: User (propriétaire)g: Group (groupe)o: Other (autres)a: All (tous)
Opérateurs:
+: Ajouter-: Retirer=: Définir
Méthode Octale
# Format: chmod ABC fichier
# A = Propriétaire, B = Groupe, C = Autres
chmod 755 fichier.txt # rwxr-xr-x
chmod 644 fichier.txt # rw-r--r--
chmod 600 fichier.txt # rw------- (privé)
chmod 777 fichier.txt # rwxrwxrwx (tous droits)
# Récursif
chmod -R 755 repertoire/
Permissions courantes:
755: Exécutable (scripts, programmes)644: Fichiers normaux (lecture/écriture)600: Fichiers privés (propriétaire seulement)700: Répertoire privé
Changer Propriétaire et Groupe (chown)
chown
# Changer propriétaire
chown user fichier.txt
# Changer propriétaire et groupe
chown user:group fichier.txt
# Changer seulement le groupe
chown :group fichier.txt
chgrp group fichier.txt
# Récursif
chown -R user:group repertoire/
Exemples:
# Donner à user1
chown user1 fichier.txt
# Donner à user1, groupe users
chown user1:users fichier.txt
# Récursif sur un répertoire
chown -R www-data:www-data /var/www/
Permissions Spéciales
SUID (Set User ID)
Exécuter avec les permissions du propriétaire:
chmod u+s fichier
# Exemple: /usr/bin/passwd (s au lieu de x)
SGID (Set Group ID)
Exécuter avec les permissions du groupe:
chmod g+s fichier
Sticky Bit
Empêche la suppression par d'autres:
chmod +t repertoire/
# Exemple: /tmp (t au lieu de x)
Masque par Défaut (umask)
Le umask détermine les permissions par défaut des nouveaux fichiers:
# Voir le umask actuel
umask
# Définir umask
umask 022 # Fichiers: 644, Répertoires: 755
umask 002 # Fichiers: 664, Répertoires: 775
Calcul:
- Fichiers: 666 - umask
- Répertoires: 777 - umask
Exemples Pratiques
Fichier Privé
chmod 600 fichier.txt
# Seul le propriétaire peut lire/écrire
Script Exécutable
chmod 755 script.sh
# Tous peuvent exécuter, propriétaire peut modifier
Répertoire Partagé
mkdir shared
chmod 775 shared
chgrp developers shared
# Groupe developers peut lire/écrire
Fichiers Web
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
Résumé
Dans ce chapitre, vous avez appris:
Permissions: r (lecture), w (écriture), x (exécution)
Niveaux: Propriétaire, Groupe, Autres
Lecture: ls -l, format symbolique et octal
chmod: Modifier permissions (symbolique ou octal)
chown: Changer propriétaire et groupe
Spéciales: SUID, SGID, Sticky Bit
umask: Permissions par défaut
Prochaines Étapes
Chapitre 3.6: Recherche de Fichiers
Chapitre 3.7: Liens Symboliques et Durs
Chapitre créé le: Décembre 2024