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.