Changer les droits d'un fichier sous Linux
Nous avons vu dernièrement comment comprendre les droits sur les fichiers sous Linux. Il arrive parfois, pour diverses raisons, que l'on soit obligé de modifier ces droits.
Comment faire pour modifier les droits sur un fichier sous Linux ?
Souvenez-vous de notre nouvel ami, ugo.
u pour user (l'utilisateur)
g pour group (le groupe)
o pour others (les autres)
Si on regarde de prêt les droits d'un fichier avec la commande ls -l, on peut voir ceci :
-rwxr--r-- 1 eric eric 9 nov. 11 22:39 monfichier
-rwxr--r-- représente les droits affectés au fichier monfichier.
Ne vous souciez pas du premier tiret, les droits commencent au premier groupe de lettres.
Il y a normalement trois groupes de trois lettres, ici :
rwx pour les droits de l'utilisateur
r-- pour les droits du groupe
r-- pour les autres
La commande qui va nous permettre de modifier les droits sur le fichier est chmod
Nous connaissons donc ugo, nous connaissons la commande chmod, il nous reste à assembler les deux pour modifier nos droits.
Dans un répertoire de test monrep, j'ai créé grâce à la commande touch un fichier monfichier
Nous allons donc pouvoir tester la commande chmod pour comprendre comment elle réagit sur ce fichier.
-rwxr--r-- 1 eric eric 9 nov. 11 22:39 monfichier
Tapons par exemple la commande chmod u-x monfichier
Voyons ce qu'il s'est passé.
-rw-r--r-- 1 eric eric 9 nov. 11 22:39 monfichier
Dans le premier groupe de lettres correspondant aux droits de l'utilisateur, le "x" a disparu.
Nous avons donc supprimé le droit d’exécution sur le fichier monfichier pour l'utilisateur.
Si nous sommes capables de supprimer le droit d'exécution (x), nous devons être capables de l'ajouter à nouveau.
Tapons la commande :
chmod u+x monfichier
Que s'est-il passé ?
-rwxr--r-- 1 eric eric 9 nov. 11 22:39 monfichier
Le "x" est à nouveau là pour le premier groupe de lettres.
Donc pour enlever un droit on met un "-" et pour l'ajouter on met un "+"
Nous pouvons en déduire que pour les autres groupes de lettres le principe est le même.
Pour le groupe, je souhaite ajouter le droit d'écrire sur le fichier monfichier.
Je vais donc devoir taper :
chmod g+w monfichier (g pour le groupe, w pour le droit en écriture)
Vérification :
-rwxrw-r-- 1 eric eric 9 nov. 11 22:39 monfichier
J'ai bien un w dans le deuxième groupe de lettres qui correspond au groupe.
Je ne veux pas que les autres (o others) puissent lire le fichier. Que dois-je taper ?
Le troisième groupe de lettres correspond à others (les autres)
Donc : chmod o-r monfichier
Vérification :
-rwxrw---- 1 eric eric 9 nov. 11 22:39 monfichier
La lettre "r" a bien disparu et remplacée par un tiret.
Nous allons à nouveau supprimer le droit d’exécution pour l'utilisateur.
chmod u-x monfichier
Nous obtenons donc :
-rw-rw---- 1 eric eric 9 nov. 11 22:39 monfichier
Maintenant on souhaite ajouter le droit d'exécution (x) à tous les groupes de lettres (ugo).
Heureusement, il existe une commande pour ajouter d'un seul coup la lettre "x" à chaque groupe de lettres.
La voici : chmod a+x monfichier (a pour all, c'est à dire tous)
Vérification :
-rwxrwx--x 1 eric eric 9 nov. 11 22:39 monfichier
C'est bon.
On peut s'amuser pour chaque groupe de lettres à utiliser des combinaisons
Admettons que nous ayons les droits suivant pour monfichier, nous pourrions taper :
---x--x--x 1 eric eric 9 nov. 11 22:39 monfichier
chmod u+rw,g+rw,o+rw monfichier
Vérification du résultat :
-rwxrwxrwx 1 eric eric 9 nov. 11 22:39 monfichier
Je pense que vous avez compris.
Voir aussi : Modifier les droits d'un fichier par la méthode des chiffres.