Les droits d'accès constituent l'un des piliers fondamentaux de la sécurité et de la gestion des systèmes Linux. Dans un environnement où plusieurs utilisateurs peuvent partager les mêmes ressources, ces mécanismes permettent de contrôler précisément qui peut voir, modifier ou exécuter des fichiers et répertoires.
La gestion fine des permissions sous Linux offre plusieurs avantages cruciaux :
Sans un système de droits d'accès robuste, Linux ne pourrait pas fonctionner comme un système multi-utilisateurs fiable. C'est cette granularité dans la gestion des permissions qui a contribué à faire de Linux le choix privilégié pour les environnements serveur, les infrastructures cloud et les systèmes nécessitant un haut niveau de sécurité.
Il y a trois groupes de permission dans Linux:
Chaque fichier et chaque répertoire possèdent des droits d’accès qui indiquent au système si un utilisateur a le droit d’accéder à un fichier ou à un répertoire.
La commande ls –l permet de visualiser les droits d’accès des fichiers ou des répertoires
Chaque fois qu’un utilisateur tente d’accéder à un fichier, trois choses peuvent se produire :
Les droits d'accès sous Linux sont représentés par une combinaison de chiffres ou de lettres qui déterminent qui peut faire quoi avec un fichier ou un répertoire.
Il existe 3 types de droits fondamentaux :
Ces droits s'appliquent à 3 catégories d'utilisateurs :
La notation numérique additionne les valeurs pour chaque catégorie :
Pour les répertoires, les droits ont des significations légèrement différentes :
Un répertoire nécessite généralement le droit d'exécution (x) pour être utilisable.
Signification des droits d’accès pour un fichier :
r |
Le contenu du fichier peut être lu. |
w |
Le contenu du fichier peut être modifié. |
x |
Le fichier contient un programme et peut être exécuté. |
Signification des droits d’accès pour un répertoire :
r |
Les éléments du répertoire sont accessibles en lecture. |
w |
L’utilisateur peut créer de nouveaux fichiers dans ce répertoire et peut supprimer des fichiers existants. |
x |
Le nom du répertoire peut apparaître dans un chemin d’accès. |
Voici le tableaux des permissions:
Le umask (user mask) est un mécanisme qui définit les permissions par défaut lors de la création de nouveaux fichiers et répertoires. C'est essentiellement un masque qui détermine quels droits doivent être retirés des permissions maximales.
Calcul détaillé :
Calcul détaillé :
C'est pourquoi avec un umask de 022 (valeur par défaut sur de nombreux systèmes) :
Cette configuration standard permet au propriétaire de tout faire, tandis que le groupe et les autres peuvent seulement lire et exécuter, mais pas modifier.
Pour calculer les permissions résultantes :
Exemple avec umask 022 :
Pour voir le umask actuel :
umask
Pour modifier temporairement le umask :
umask 022 # Définit umask à 022
Pour modifier le umask de façon permanente, ajoutez la commande dans votre ~/.bashrc ou ~/.profile.
Vous pouvez aussi utiliser la notation symbolique :
umask u=rwx,g=rx,o=rx
équivalent à umask 022
umask u=rwx,g=rwx,o=rx
équivalent à umask 002
Cette notation est plus intuitive car elle exprime directement les permissions que vous souhaitez accorder plutôt que celles à retirer.
La commande chmod
(change mode) est un outil fondamental dans Linux qui permet de modifier les permissions d'accès des fichiers et répertoires. Elle contrôle qui peut lire, écrire ou exécuter un fichier.
chmod
peut être utilisé avec deux notations :
chmod u+x fichier
(ajoute l'exécution au propriétaire)chmod 755 fichier
(rwx pour propriétaire, r-x pour groupe et autres)La notation numérique additionne les valeurs : lecture (4) + écriture (2) + exécution (1)
Exemples courants :
chmod 644 fichier
: fichier standard (rw-r--r--)chmod 755 dossier
: répertoire accessible (rwxr-xr-x)chmod -R 750 dossier
: applique récursivement à un dossier et son contenuCette commande est essentielle pour maintenir la sécurité en contrôlant précisément qui peut accéder à quoi dans le système.
Voici les utilisations les plus fréquentes de la commande chmod dans un environnement Linux :
chmod 644 fichier.txt
chmod 755 script.sh
chmod 775 dossier_projet
chmod 600 id_rsa
chmod 700 .ssh
chmod -R 755 site_web/
chmod -R a+rx docs
chmod u+x script.py # Ajoute l'exécution pour le propriétaire
chmod g+w fichier.txt # Ajoute l'écriture pour le groupe
chmod o-rwx données.db # Retire tous les droits aux autres
chmod a+r document.pdf # Donne la lecture à tous (all)
Ces exemples couvrent la majorité des besoins quotidiens en matière de gestion des permissions sous Linux.
La commande chown
(change owner) est un outil essentiel de Linux qui permet de modifier le propriétaire et/ou le groupe propriétaire d'un fichier ou d'un répertoire.
Syntaxe de base : chown [options] propriétaire[:groupe] fichier
Exemples courants :
chown pablo fichier.txt
: Change uniquement le propriétairechown pablo:developers fichier.txt
: Change à la fois le propriétaire et le groupechown :developers fichier.txt
: Change uniquement le groupe (équivalent à chgrp
)chown :1000 fichier.txt
: Changele groupe de fichier en utilisant le numéro du groupechown -R pablo:developers dossier/
: Applique les changements récursivementCette commande nécessite généralement les privilèges root (via sudo) car elle peut potentiellement contourner les restrictions de sécurité en transférant la propriété des fichiers entre utilisateurs.
chown
est particulièrement utile lors de la configuration de services, la gestion des droits d'accès aux données partagées, ou lors de la récupération de fichiers après des opérations administratives.
La commande chgrp
(change group) est un outil spécialisé de Linux qui permet de modifier uniquement le groupe propriétaire d'un fichier ou d'un répertoire.
Syntaxe de base : chgrp [options] groupe fichier
Exemples courants :
chgrp developers projet.py
: Change le groupe du fichier à "developers"chgrp -R admins /var/www/
: Change récursivement le groupe de tous les fichiers et sous-répertoireschgrp 1000 fichier.txt
: Changer le groupe de plusieurs fichiers en utilisant une expression régulièrechgrp --reference=fichier1.txt fichier2.txt
: Applique le même groupe que fichier1.txt à fichier2.txtCette commande est essentiellement un sous-ensemble de chown
spécialisé pour les groupes. Elle nécessite que l'utilisateur soit soit le propriétaire du fichier, soit dispose des privilèges administratifs (root).
chgrp
est particulièrement utile dans les environnements collaboratifs où la gestion des permissions par groupe est primordiale, permettant de partager facilement l'accès aux fichiers entre membres d'une même équipe sans modifier le propriétaire individuel.