Les droits d'accès aux fichiers sous Linux déterminent qui peut lire, écrire et exécuter des fichiers, et la commande chmod vous en donne le contrôle total. Dans ce guide, vous apprendrez étape par étape comment fonctionne chmod, y compris les notations numérique et symbolique, les erreurs fréquentes et des conseils de sécurité.


1. Que sont les droits d'accès aux fichiers sous Linux ?

Sous Linux et Unix, chaque fichier et chaque dossier possède certains droits, qui déterminent qui y a accès et ce que cette personne peut en faire. Ces droits sont répartis en trois catégories :

  • Propriétaire (user - u): l'utilisateur qui a créé le fichier.
  • Groupe (group - g): les autres utilisateurs qui font partie du même groupe.
  • Autres (others - o): toute personne qui n'est pas propriétaire et qui ne fait pas partie du groupe.

Chaque fichier possède trois droits :

  • r (read) - lire un fichier ou consulter le contenu d'un dossier.
  • w (write) - modifier ou supprimer un fichier.
  • x (execute) - exécuter un fichier (par exemple un script ou un programme).

Vous pouvez afficher les droits d'un fichier avec :

ls -l bestand.txt 

Cela affiche par exemple :

-rw-r--r-- 1 gebruiker groep 1234 mrt 17 10:00 bestand.txt 

Vous voyez ici :

  • rw- (lecture et écriture pour le propriétaire)
  • r-- (lecture seule pour le groupe)
  • r-- (lecture seule pour les autres)

2. Utilisation de base de chmod

La syntaxe générale de chmod est :

chmod [opties] rechten bestand 

Exemples :

  • chmod 755 script.sh → rend un script exécutable pour tout le monde.
  • chmod 644 document.txt → seul le propriétaire peut écrire, les autres peuvent lire.

3. Mode numérique : chmod avec des chiffres

Vous pouvez définir les droits avec une notation octale (des chiffres). Chaque droit a une valeur numérique :

  • r = 4 (read)
  • w = 2 (write)
  • x = 1 (execute)

Combinaisons :

  • 7 (rwx) → lecture, écriture et exécution.
  • 6 (rw-) → lecture et écriture.
  • 5 (r-x) → lecture et exécution.
  • 4 (r--) → lecture seule.

Exemple :

chmod 755 script.sh 

Ici, le propriétaire obtient tous les droits (rwx = 7), tandis que le groupe et les autres n'obtiennent que les droits de lecture et d'exécution (r-x = 5).


4. Mode symbolique : chmod avec des lettres

Au lieu de chiffres, vous pouvez aussi modifier les droits à l'aide de symboles :

  • u (user - propriétaire)
  • g (group - groupe)
  • o (others - autres utilisateurs)
  • a (all - tout le monde)

Et avec des opérateurs :

  • + (ajouter des droits)
  • - (retirer des droits)
  • = (définir les droits exactement)

Exemples :

chmod u+x script.sh # Geeft de eigenaar uitvoerrechten chmod g-w bestand.txt # Verwijdert schrijfrechten van de groep chmod o= bestand.txt # Verwijdert alle rechten van anderen 

5. Réglages chmod courants

Voici quelques réglages standard et les cas dans lesquels vous les utilisez :

Code chmod Description Utilisation
755 Le propriétaire a tous les droits, les autres uniquement lecture/exécution Scripts et programmes
644 Le propriétaire peut écrire, les autres peuvent lire Fichiers de configuration, pages web
700 Seul le propriétaire a accès Fichiers privés, clés SSH
600 Seul le propriétaire peut lire/écrire Fichiers sensibles comme les mots de passe
777 Tout le monde a tous les droits (dangereux !) Uniquement dans des cas exceptionnels

6. Options avancées

a) Utiliser chmod de manière récursive (-R)

Vous souhaitez appliquer chmod à un dossier entier, sous-dossiers et fichiers compris ? Utilisez l'option -R:

chmod -R 755 mijnmap/ 

Ainsi, tous les fichiers et sous-dossiers de mijnmap/ reçoivent les mêmes droits.

b) SUID, SGID et le sticky bit

Outre les droits standard, il existe trois bits spéciaux :

  • SUID (Set User ID - 4xxx): fait toujours s'exécuter un fichier en tant que son propriétaire.
  • SGID (Set Group ID - 2xxx): les nouveaux fichiers d'un dossier reçoivent automatiquement les droits du groupe.
  • Sticky bit (1xxx): empêche les autres de supprimer des fichiers dans un dossier partagé.

Exemple :

chmod 4755 script.sh # SUID instellen chmod 2755 mijnmap/ # SGID instellen chmod 1777 /tmp # Sticky bit instellen (gebruikelijk voor de /tmp map) 

7. Applications pratiques

a) Rendre un script exécutable

Vous avez un script que vous souhaitez exécuter ? Donnez-lui les droits d'exécution :

chmod +x mijnscript.sh ./mijnscript.sh 

b) Protéger des fichiers contre les modifications

Vous souhaitez protéger un fichier contre des modifications indésirables ?

chmod 444 belangrijk.txt # Alleen-lezen voor iedereen 

c) Les bons droits pour les clés SSH

Les clés SSH nécessitent des droits spécifiques :

chmod 600 ~/.ssh/id_rsa # Privésleutel (alleen eigenaar mag lezen/schrijven) chmod 644 ~/.ssh/id_rsa.pub # Publieke sleutel (iedereen mag lezen) 

8. Erreurs fréquentes et risques de sécurité

a) Pourquoi chmod 777 est généralement une mauvaise idée

Accorder tous les droits (chmod 777) à un fichier ou à un dossier signifie que tout le monde peut tout faire. C'est un risque de sécurité majeur, en particulier pour les serveurs web :

chmod 777 /var/www/html/index.php # Fout! Iedereen kan dit bestand aanpassen. 

Mieux :

chmod 644 /var/www/html/index.php # Alleen de eigenaar kan schrijven. 

b) Erreurs courantes

  • Oublier de donner les droits d'exécution à un script:
    Solution: chmod +x script.sh
  • Mauvais droits sur les clés SSH:
    Solution: chmod 600 ~/.ssh/id_rsa

9. Outils supplémentaires pour la gestion des droits

Outre chmod, il existe d'autres commandes pratiques :

  • chown: modifie le propriétaire d'un fichier.
    chown gebruiker:groep bestand.txt 
  • chgrp: modifie uniquement le groupe d'un fichier.
    chgrp groepnaam bestand.txt 
  • umask: détermine les droits par défaut lors de la création de nouveaux fichiers.
    umask 022 # Nieuwe bestanden krijgen standaard 644, mappen 755 

10. Conclusion : bonnes pratiques

  • Soyez prudent avec chmod 777: ne l'utilisez que si c'est vraiment nécessaire.
  • Utilisez la notation numérique ou symbolique selon la situation.
  • Rendez les scripts exécutables avec chmod +x.
  • Protégez les fichiers sensibles comme les clés SSH avec chmod 600.
  • N'utilisez chmod -R que si vous savez exactement ce que vous faites.

Grâce à ces connaissances, vous pouvez gérer les droits d'accès aux fichiers sous Linux de manière sûre et efficace. 🚀

Vous cherchez des serveurs dédiés ? Découvrez notre offre.