La commande change of mode ou chmod permet de changer le mode d'accès aux fichiers sous Linux. Cela vous permet de décider qui peut accéder aux fichiers et les exécuter. Nous utiliserons chmod pour modifier les autorisations des fichiers et des répertoires dans Ubuntu 20.04.
Pour afficher les autorisations d'un fichier, utilisez :
ls –l
Qu'est-ce que tout cela signifie ?
Le premier caractère identifie s'il s'agit d'un fichier (-) ou d'un répertoire (d).
Viennent ensuite les autorisations. Les trois premiers caractères indiquent les autorisations du propriétaire, les trois suivants les autorisations du groupe et les trois derniers les autorisations des autres. Le tableau ci-dessous explique les types d'utilisateurs.
Utilisateur | Description |
Propriétaire | c'est l'utilisateur qui possède le fichier |
Groupe | ce sont des utilisateurs qui font partie d'un groupe d'utilisateurs |
Autres | il s'agit d'utilisateurs autres que le propriétaire et les membres du groupe |
Regardons les autorisations des utilisateurs sous Linux. Il existe trois autorisations de base ; lire (r), écrire (w) et exécuter (x). Lire signifie que l'utilisateur ne peut que lire ou afficher le fichier. Write permet aux utilisateurs de modifier ou de supprimer un fichier. Exécuter permet aux utilisateurs d'exécuter le fichier. Comme vous pouvez le voir dans l'image ci-dessus, les autorisations sont représentées soit par des caractères, soit par -. Le "-" (tiret) signifie que les utilisateurs n'ont pas la permission.
La syntaxe de chmod est :
chmod {utilisateurs}{opérateur}{permission} {nomfichier}
Les opérateurs vous permettent de spécifier les autorisations. Nous avons trois opérateurs :
+ :Ajoute l'autorisation
- :Supprime l'autorisation
= :vous permet de spécifier l'autorisation exacte
chmod a deux modes, les modes symbolique et numérique. Nous couvrirons les deux.
Mode symbolique
Regardons le fichier "hello.c". L'utilisateur dispose des trois autorisations.
Si nous voulons modifier les autorisations afin que seul le propriétaire puisse lire et écrire le fichier, tandis que le groupe et les autres ont l'autorisation de lecture, nous utiliserons :
chmod u=rw,og=r hello.c
Pour vérifier si les autorisations ont été mises à jour, utilisez,
ls –l {filename}
Si vous souhaitez ajouter l'autorisation d'exécution pour le propriétaire, nous utilisons :
chmod u+x hello.c
Si nous visualisons les autorisations maintenant, nous pouvons voir l'autorisation d'exécution pour le propriétaire.
Si nous voulons définir l'autorisation d'exécution pour tous, nous utilisons :
chmod a+x hello.c
Si nous visualisons les autorisations maintenant, nous pouvons voir l'autorisation d'exécution pour tous les utilisateurs.
Mode numérique
Vous pouvez utiliser un nombre à trois chiffres pour accorder des autorisations à l'aide de chmod. Voici comment cela fonctionne, le chiffre le plus à gauche représente l'autorisation pour le propriétaire, celui du milieu est pour les membres du groupe et le plus à droite pour les autres.
Les autorisations sont les suivantes :
Lire =4
Écrire =2
Exécuter =1
Aucune autorisation =0
Le tableau ci-dessous résume les autorisations.
7 | Toutes les autorisations | 4+2+1 |
6 | Lire et écrire | 4+2+0 |
5 | Lire et exécuter | 4+0+1 |
4 | Lecture seule | 4+0+0 |
3 | Écrire et exécuter | 0+2+1 |
2 | Écriture seule | 0+2+0 |
1 | Exécuter uniquement | 0+0+1 |
0 | Aucune autorisation | 0+0+0 |
Utilisons cette méthode pour définir l'autorisation pour ABC.txt.
Si nous voulons que le propriétaire ait toutes les autorisations et que le groupe et les autres aient les autorisations de lecture, nous utiliserons :
chmod 744 ABC.txt
Pour vérifier si les autorisations ont été mises à jour, utilisez,
Si vous souhaitez modifier de manière récursive les autorisations de tous les fichiers d'un répertoire, utilisez :
chmod –R {permissions} {filename}
Cette commande donne au propriétaire les trois autorisations et groupes et les autres aucune autorisation.
Si vous voulez en savoir plus sur chmod, utilisez :
man chmod
Cela vous mènera au manuel qui contient tous les détails sur cette commande.
Nous avons couvert à la fois le mode symbolique et numérique de la commande chmod dans cet article.