Commande chmod sous Linux avec exemples

Lorsque vous travaillez avec des fichiers et des répertoires sous Linux, la commande chmod est un outil essentiel dans votre arsenal. En tant qu'acronyme de « Change Mode », la commande chmod est conçue pour aider les utilisateurs de Linux à ajuster les autorisations des fichiers ou des répertoires. Débordante de polyvalence, cette commande est essentielle pour une gestion de fichiers sécurisée et efficace. Plongeons dans les subtilités de la commande chmod et explorons comment elle peut être mise en pratique.

Comprendre la commande chmod sous Linux

Qu'est-ce que la commande chmod ?

La commande chmod est un utilitaire de ligne de commande Linux permettant de modifier le mode du système de fichiers. Ce mode détermine les types d'autorisations dont disposent les utilisateurs et les groupes sur les fichiers et les répertoires. Ces autorisations déterminent qui peut lire, écrire et exécuter les fichiers spécifiés.

Pourquoi utiliser la commande chmod ?

Sous Linux, les fichiers et les répertoires sont des ressources partagées. Pour protéger ces ressources, il faut gérer les autorisations d'accès. La commande chmod vous permet de contrôler ces autorisations et d'assurer la sécurité du système. Que vous soyez un administrateur système protégeant des données sensibles ou un développeur mettant en place un projet, il est nécessaire de comprendre chmod.

Comprendre la syntaxe des commandes chmod

La commande chmod suit la syntaxe ci-dessous :

chmod [OPTIONS] MODE[,MODE]... FILE...

OPTIONS peut être des paramètres facultatifs fournissant des fonctionnalités supplémentaires, MODE spécifie les autorisations à définir et FILE est le fichier ou le répertoire dont les autorisations seront modifiées. chmod dispose de deux méthodes principales pour définir les autorisations : le mode numérique et le mode symbolique.

Différentes options de la commande chmod

Commande chmod sans aucune option

Par défaut, sans aucune option, chmod modifie les autorisations du fichier vers le mode spécifié par l'utilisateur.

chmod 755 filename

La commande ci-dessus modifie les autorisations de « nom de fichier » afin que le propriétaire dispose des autorisations de lecture, d'écriture et d'exécution (7), et que le groupe et les autres disposent des autorisations de lecture et d'exécution (5).

Commande chmod avec options

Plusieurs options peuvent être utilisées avec chmod pour étendre ses fonctionnalités :

  • -R ou –récursif : modifie les fichiers et les répertoires de manière récursive.
  • -f ou –silent ou –quiet : supprime la plupart des messages d'erreur.
  • -v ou –verbose : génère un diagnostic pour chaque fichier traité.
  • –reference=RFILE : définit les autorisations pour qu'elles correspondent à celles de RFILE.

Comprendre les autorisations de fichiers avec chmod

Trois caractères désignent les autorisations sous Linux :

  • r (lecture) : l'autorisation de lire le contenu du fichier.
  • w (écrire) : L'autorisation de modifier ou de supprimer le fichier.
  • x (exécuter) : l'autorisation d'exécuter le fichier.

Par exemple, un fichier avec des autorisations rwx pour l'utilisateur signifie que l'utilisateur peut lire, écrire et exécuter le fichier.

Modes numériques et symboliques dans chmod

Il existe deux manières de modifier les autorisations avec chmod :

  • Mode numérique : ce mode utilise des nombres pour représenter les autorisations. La lecture est égale à 4, l'écriture est égale à 2 et l'exécution est égale à 1. Ces nombres sont additionnés pour définir les autorisations. Par exemple, pour accorder à l'utilisateur des autorisations de lecture, d'écriture et d'exécution (7), vous utiliseriez la commande :
chmod 700 filename
  • Mode numérique : ce mode utilise des nombres pour représenter les autorisations. La lecture est égale à 4, l'écriture est égale à 2 et l'exécution est égale à 1. Ces nombres sont additionnés pour définir les autorisations. Par exemple, pour accorder à l'utilisateur des autorisations de lecture, d'écriture et d'exécution (7), vous utiliseriez la commande :
chmod u+x filename

Exemples de commandes chmod courantes

Après avoir compris le fonctionnement des autorisations et de la commande chmod, explorons quelques exemples pratiques.

Exemple 1 : Modification des autorisations à l'aide du mode numérique

chmod 755 filename

Cette commande modifie les autorisations de « nom de fichier » de sorte que :

  • L'utilisateur (propriétaire) dispose des autorisations de lecture (4), d'écriture (2) et d'exécution (1), résumées à 7.
  • Le groupe et les autres disposent d'autorisations de lecture (4) et d'exécution (1), pour un total de 5.

En d’autres termes, le propriétaire a un accès complet, tandis que les membres du groupe et autres peuvent lire et exécuter le fichier mais ne peuvent pas le modifier.

Exemple 2 : Modification des autorisations à l'aide du mode symbolique

chmod u+x filename

Cette commande ajoute une autorisation d'exécution pour l'utilisateur sur « nom de fichier ». Voici la répartition :

  • u : représente l'utilisateur.
  • + : indique qu'une autorisation est en cours d'ajout.
  • x : représente l'autorisation d'exécution.

Pour résumer, cette commande indique au système : « Ajouter (+) l'autorisation d'exécution (x) pour l'utilisateur (u) pour ce fichier (« nom de fichier ») ».

Exemple 3 : suppression des autorisations

chmod go-w filename

Cette commande supprime les autorisations d'écriture pour le groupe et les autres du « nom de fichier ». En détails:

  • aller : signifie groupe et autres.
  • -: Signifie qu'une autorisation est en cours de suppression.
  • w : représente l'autorisation d'écriture.

Par conséquent, cette commande supprime l'autorisation d'écriture du groupe et des autres utilisateurs, améliorant ainsi la sécurité du fichier.

Exemple 4 : Définition de toutes les autorisations

chmod ugo+rwx filename

Cette commande donne toutes les autorisations à tous les utilisateurs pour « nom de fichier ». La répartition est la suivante :

  • ugo : représente l'utilisateur, le groupe et d'autres.
  • + : indique que des autorisations sont ajoutées.
  • rwx : représente les autorisations de lecture, d'écriture et d'exécution.

Cette commande ouvre effectivement « filename » à tout le monde, mais elle doit être utilisée avec prudence, compte tenu des implications en matière de sécurité.

Exemple 5 : Utilisation de chmod avec l'option -R

chmod -R 755 directoryname

Cette commande modifie de manière récursive les autorisations de tous les fichiers et répertoires dans « directoryname ».

  • -R : signifie « récursif » et il est utilisé lorsque nous souhaitons modifier les autorisations pour tous les fichiers et répertoires à l'intérieur d'un répertoire.

Ici, cette commande accorde des autorisations complètes au propriétaire et des autorisations de lecture et d'exécution au groupe et à d'autres pour « nom du répertoire » et tous ses fichiers et répertoires imbriqués.

Exemple 6 : Modification des autorisations de groupe

chmod g-wx filename

Cette commande supprime les autorisations d'écriture et d'exécution du groupe pour « nom de fichier ». Voici l'explication :

  • g : représente le groupe.
  • - : Indique que les autorisations sont supprimées.
  • wx : représente les autorisations d’écriture et d’exécution.

Par conséquent, les membres du groupe associés à « nom de fichier » ne pourront plus le modifier ni l'exécuter.

Exemple 7 : Modification de plusieurs autorisations

chmod u=rwx,g=rx,o=r filename

Cette commande définit différentes autorisations pour différents types d'utilisateurs. Voici ce que cela fait :

  • u=rwx : définit les autorisations de l'utilisateur pour lire, écrire et exécuter.
  • g=rx : définit les autorisations du groupe pour lire et exécuter.
  • o=r : définit les autorisations de l'autre en lecture seule.

Cela vous permet de contrôler de manière granulaire les niveaux d'accès pour différents types d'utilisateurs.

Exemple 8 : copie des autorisations

chmod --reference=filename1 filename2

Cette commande copie les autorisations de « filename1 » vers « filename2 ».

  • –reference=filename1 : indique que 'filename1' est le fichier de référence à partir duquel les autorisations seront copiées.

Cette commande est pratique lorsque vous souhaitez appliquer rapidement les mêmes autorisations à plusieurs fichiers.

Exemple 9 : Modification des autorisations à l'aide de Sticky Bit

chmod 1757 directoryname

Cette commande définit le bit collant (1) et les autorisations (757) pour « nom du répertoire ».

  • Le sticky bit (1) garantit que seul le propriétaire du fichier, le propriétaire du répertoire ou l'utilisateur root peut supprimer ou renommer des fichiers.
  • 757 : définit les autorisations de l'utilisateur pour lire, écrire et exécuter (7), ainsi que les autorisations du groupe et des autres pour lire, écrire et sticky bit (5, 7).

Ceci est particulièrement utile pour les répertoires partagés par plusieurs utilisateurs, comme /tmp, pour empêcher les utilisateurs de supprimer ou de renommer les fichiers des autres.

Exemple 10 : Utilisation de chmod avec la commande Find

find . -type f -exec chmod 644 {} \;

Cette commande recherche tous les fichiers réguliers dans le répertoire actuel et ses sous-répertoires et modifie leurs autorisations à 644 (lecture/écriture pour le propriétaire et lecture pour le groupe et les autres).

  • find . -type f : Recherche tous les fichiers dans le répertoire actuel et ses sous-répertoires.
  • -exec chmod 644 {} \; : modifie les autorisations de chaque fichier trouvé.

Cette commande est utile lorsque vous souhaitez modifier les autorisations de plusieurs fichiers en fonction de certains critères.

Exemples de commandes chmod avancées

Comme pour toute commande Linux, chmod possède quelques astuces qui peuvent vous faciliter la vie. Explorons ces exemples avancés.

Exemple avancé 1 : modification récursive des autorisations

chmod -R 755 directoryname

Cette commande modifie les autorisations du répertoire et de tout son contenu de manière récursive. Voici ce que cela fait :

  • -R : C'est l'option récursive. Il applique la modification aux répertoires et aux fichiers contenus dans ces répertoires.
  • 755 : Ceci définit les autorisations de lecture, d'écriture et d'exécution de l'utilisateur (7) et les autorisations de lecture et d'exécution du groupe et des autres (5).

Ceci est particulièrement utile lorsque vous souhaitez modifier les autorisations d'un répertoire et de tous les fichiers et sous-répertoires qu'il contient.

Exemple avancé 2 : définition de Setuid, Setgid et Sticky Bits

chmod 4755 filename
chmod 2755 directoryname
chmod 1755 directoryname

Ces commandes définissent les bits setuid, setgid et sticky pour un fichier ou un répertoire :

  • Le bit setuid (4) : lorsqu'il est défini sur un fichier, les utilisateurs peuvent exécuter le fichier avec les autorisations du propriétaire du fichier.
  • Le bit setgid (2) : lorsqu'il est défini sur un répertoire, les nouveaux fichiers et sous-répertoires créés dans celui-ci héritent de son groupe, plutôt que du groupe principal de l'utilisateur créateur.
  • Le sticky bit (1) : protège contre la suppression de fichiers à l'intérieur d'un répertoire. Lorsqu'il est défini, les fichiers ne peuvent être supprimés que par leur propriétaire, le propriétaire du répertoire ou l'utilisateur root.

Exemple avancé 3 : Modification des autorisations des répertoires uniquement

find /path -type d -exec chmod 755 {} \;

Cette commande modifie les autorisations uniquement des répertoires sous un chemin donné, laissant les fichiers tels quels :

  • find /path -type d : recherche tous les répertoires sous le chemin donné.
  • -exec chmod 755 {} \; : modifie les autorisations de chaque répertoire trouvé.

Cette commande est utile lorsque vous souhaitez modifier les autorisations uniquement des répertoires, pas des fichiers.

Exemple avancé 4 : modification des autorisations des fichiers uniquement

find /path -type f -exec chmod 644 {} \;

Cette commande modifie les autorisations des fichiers uniquement sous un chemin donné, laissant les répertoires tels quels :

  • find /path -type f : recherche tous les fichiers sous le chemin indiqué.
  • -exec chmod 644 {} \; : modifie les autorisations de chaque fichier trouvé.

Cette commande est utile lorsque vous souhaitez modifier les autorisations uniquement des fichiers, pas des répertoires.

Exemple avancé 5 : Rendre un script exécutable par tout le monde

chmod +x scriptname

Cette commande ajoute l'autorisation d'exécution à l'utilisateur, au groupe et aux autres pour « nom du script » :

  • +x : ajoute une autorisation d'exécution.

Il s'agit d'une opération courante lorsque vous créez un nouveau script et que vous souhaitez le rendre exécutable.

Conclusion

La commande chmod est un utilitaire essentiel sous Linux pour gérer les autorisations de fichiers. De l'utilisation de base aux techniques plus avancées telles que les modifications récursives et la définition de bits spéciaux, comprendre chmod est la clé d'une gestion efficace des fichiers Linux. Avec les exemples donnés, vous devriez pouvoir définir en toute confiance les autorisations en fonction de vos besoins et augmenter votre productivité dans l'environnement Linux.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire