Sur Linux, une permission mal réglée peut transformer un simple fichier en porte ouverte ou bloquer un service au pire moment. La commande chmod permet d’ajuster ces accès avec précision : voici comment lire les droits existants, choisir entre notation symbolique et numérique, puis modifier fichiers et répertoires sans jouer les apprentis sorciers du terminal.
L’article en bref
Les permissions Linux forment une règle du jeu lisible, à condition de savoir qui peut lire, modifier ou exécuter chaque élément. Ces exemples montrent comment utiliser chmod avec méthode et éviter les réglages risqués.
- Lire les accès : Repérer propriétaire, groupe et autres dans la sortie de ls -l.
- Choisir sa notation : Modifier les droits avec des lettres ou des valeurs octales.
- Appliquer les bons réglages : Utiliser chmod 644 pour les fichiers et chmod 755 pour les dossiers.
- Éviter les mauvaises surprises : Contrôler les modifications récursives avant de toucher une arborescence entière.
À retenir : chaque permission accordée doit répondre à un besoin réel, pas à l’envie de faire disparaître un message d’erreur.
Comprendre les permissions de fichiers sous Linux
Chaque fichier et répertoire Linux possède un propriétaire, un groupe et des droits d’accès définis pour trois catégories : le propriétaire, les membres du groupe et les autres utilisateurs. Ce modèle des permissions Unix permet de déterminer qui peut consulter, modifier ou utiliser un élément.
Les trois droits fondamentaux sont la lecture (r), l’écriture (w) et l’exécution (x). Pour un répertoire, l’exécution permet notamment de le traverser ; sans elle, connaître le nom d’un fichier ne suffit pas toujours pour y accéder.
Pour observer ces réglages, la commande terminal la plus utile est ls -l. Dans la ligne « -rw-r–r– 1 alice admin 1024 jun 5 10:00 mon_fichier.txt », le premier caractère indique le type d’élément, puis les neuf caractères suivants détaillent les droits par groupes de trois.
- rw- : le propriétaire peut lire et modifier le fichier.
- r– : le groupe peut le consulter, sans le modifier.
- r– : les autres utilisateurs disposent également de la lecture seule.
Ce découpage ressemble à une fiche de casting : chaque catégorie a un rôle, et les droits précisent ce qu’elle peut faire. Pour passer de la lecture à l’action, il faut maintenant choisir comment formuler les changements.
Utiliser chmod en mode symbolique
Le mode symbolique exprime directement l’intention : on désigne une catégorie d’utilisateurs, une opération, puis le droit concerné. Les lettres u, g, o et a désignent respectivement le propriétaire, le groupe, les autres et tout le monde.
Les opérateurs +, – et = ajoutent un droit, le retirent ou remplacent les permissions de la catégorie visée. Cette approche est particulièrement lisible quand un seul ajustement est nécessaire.
- chmod u+x script.sh ajoute le droit d’exécution au propriétaire.
- chmod g+r rapport.txt autorise le groupe à lire le fichier.
- chmod a-x script.sh retire l’exécution à toutes les catégories.
- chmod o= document.txt retire tous les droits aux autres utilisateurs.
- chmod u=rwx,g=r,o= fichier.txt définit précisément les accès de chaque catégorie.
La notation symbolique évite de recalculer l’ensemble des droits lorsque la demande est ciblée. Pour une configuration complète, la notation numérique se révèle souvent plus rapide, à condition de bien comprendre son calcul.
Calculer les droits avec chmod 644 et chmod 755
En mode numérique, chaque droit possède une valeur : lecture = 4, écriture = 2, exécution = 1 et absence de droit = 0. Les valeurs s’additionnent séparément pour le propriétaire, le groupe et les autres.
Ainsi, rwx vaut 7 (4 + 2 + 1), rw- vaut 6, r-x vaut 5 et r– vaut 4. Dans chmod 644 fichier.txt, le propriétaire peut lire et écrire, tandis que le groupe et les autres peuvent seulement lire : un réglage courant pour un fichier ordinaire.
chmod 755 dossier donne tous les droits au propriétaire, puis la lecture et la traversée au groupe et aux autres. Ce profil est adapté à de nombreux répertoires accessibles en consultation, mais les besoins d’un système ou d’une application peuvent varier.
| Commande | Droits attribués | Usage courant |
|---|---|---|
| chmod 600 fichier | Propriétaire : lecture et écriture | Fichier privé contenant des informations sensibles |
| chmod 644 fichier | Propriétaire : lecture et écriture ; autres : lecture | Fichier ordinaire consultable |
| chmod 700 dossier | Propriétaire : tous les droits ; autres : aucun | Répertoire privé |
| chmod 755 dossier | Propriétaire : tous les droits ; autres : lecture et traversée | Répertoire accessible sans modification publique |
La commande chmod 777 accorde lecture, écriture et exécution à tout le monde. C’est rarement une solution acceptable : sur une machine partagée ou un serveur, mieux vaut identifier l’utilisateur ou le groupe qui a réellement besoin d’un accès.
Si une modification provoque un refus d’accès, élargir systématiquement les permissions n’est pas la seule piste. Ce guide sur les erreurs « permission denied » sous Linux peut aider à examiner le contexte avant de changer les droits.
Appliquer des permissions récursives sans risque
L’option -R applique une modification à un répertoire et à son contenu. Pratique pour corriger une arborescence entière, elle peut aussi uniformiser des droits qui devraient rester différents : un dossier doit généralement être traversable, tandis qu’un fichier texte n’a pas besoin d’être exécutable.
Pour attribuer les droits 644 aux fichiers ordinaires d’une application, la commande find /var/www/application -type f -exec chmod 644 {} ; cible uniquement les fichiers. Pour régler séparément les répertoires, on peut utiliser find /var/www/application -type d -exec chmod 755 {} ;.
Une autre possibilité est chmod -R 700 dossier/, qui réserve l’accès au propriétaire sur tout le contenu. Avant de lancer une commande récursive, vérifier le chemin ciblé et le résultat attendu évite qu’une erreur de frappe ne se transforme en grand ménage non sollicité.
Lorsque le refus vient du propriétaire plutôt que des droits, chown sert à changer le propriétaire ou le groupe, avec des privilèges administrateur souvent nécessaires. Par exemple, sudo chown bob:devops projet/ attribue le répertoire à bob et au groupe devops ; l’option -R doit elle aussi être utilisée avec prudence.
Pour des vérifications complémentaires liées à l’accès à des fichiers sur un partage réseau, cette ressource consacrée aux permissions et refus d’accès NFS sous Linux apporte un éclairage utile. Le bon réflexe reste de distinguer les droits locaux des règles propres au partage.
Vérifier les changements et connaître les limites de chmod
Après une modification, relancer ls -l fichier permet de vérifier les droits, le propriétaire et le groupe. Pour afficher les permissions d’un dossier précis, ls -ld dossier décrit le dossier lui-même plutôt que son contenu.
Les nouveaux fichiers et répertoires reçoivent des droits initiaux influencés par umask. À l’inverse, chmod modifie les permissions d’éléments déjà créés : ces mécanismes se complètent, mais l’un ne remplace pas l’autre.
Le modèle classique couvre propriétaire, groupe et autres. Quand plusieurs utilisateurs ou groupes doivent recevoir des accès distincts, les ACL permettent des règles plus fines avec des outils comme getfacl et setfacl.
Enfin, des lettres comme s ou t peuvent apparaître dans l’affichage des permissions : elles signalent des bits spéciaux, tels que setuid, setgid ou le sticky bit. Ce sont des mécanismes plus avancés ; avant de les modifier, mieux vaut comprendre précisément leur effet sur le programme ou le répertoire concerné.
À quoi sert la commande chmod sous Linux ?
chmod modifie les droits d’accès des fichiers et répertoires, pour le propriétaire, le groupe et les autres utilisateurs.
Quelle différence entre chmod 644 et chmod 755 ?
chmod 644 donne au propriétaire la lecture et l’écriture, et la lecture aux autres. chmod 755 donne tous les droits au propriétaire et la lecture avec traversée aux autres ; il convient généralement à un répertoire, pas à un fichier ordinaire.
Pourquoi éviter chmod 777 ?
Cette valeur autorise tous les utilisateurs à lire, modifier et exécuter l’élément. Elle peut exposer des données ou permettre des modifications indésirables ; il vaut mieux accorder uniquement les droits nécessaires.
Comment vérifier les permissions après une commande chmod ?
Utilisez ls -l nom_du_fichier pour afficher les droits, le propriétaire et le groupe. Pour examiner le répertoire lui-même, utilisez ls -ld nom_du_dossier.
chmod change-t-il le propriétaire d’un fichier ?
Non. chmod modifie les permissions ; chown change le propriétaire et, si demandé, le groupe du fichier ou du répertoire.




