Modifier les droits et permissions

Graphiquement

Dans Nautilus, on peut modifier les valeurs dans l'onglet "permissions". On peut le faire si on a les droits, mais si le fichier n'est accessible que par root, on ne pourra pas le faire puisque par défaut, nous ne sommes pas "sudo".

La solution éventuelle est d'utiliser l'utilitaire gksudo en lançant la commande :

1
gksudo nautilus

Attention

Comme toutes les commandes avec élévation de droits, c'est vraiment à utiliser qu'en connaissance de cause. En pratique, on n'utilise quasi jamais cette possibilité.

En ligne de commande

Pour modifier les droits et permissions en ligne de commande, nous utiliserons les 3 commandes suivantes :

  1. chown (change owner) ou chgrp (change group)

  2. chmod (change mod)

Chaque fichier a un propriétaire et un groupe.

  • La commande chown permet de changer le propriétaire et/ou le groupe.

  • La commande chgrp permet de changer le groupe.

  • La commande chmod permet de modifier les droits et permissions. On utilise cette dernière en indiquant l'utilisateur (u, g, o ou a), les actions "+, -, =" et le droit concerné "r, w, x". On pourra éventuellement utiliser la notation décimale.

MéthodeChanger le propriétaire d'un fichier

Changer le propriétaire d'un fichier :

1
chown nouvel_utilisateur unfichier

Changer le groupe propriétaire d'un fichier :

1
chgrp nouveau_groupe unfichier

Changer le propriétaire et/ou le groupe propriétaire d'un fichier :

1
chown nouvel_utilisateur:nouveau_groupe unfichier

MéthodeChanger le propriétaire d'un dossier

Changer le propriétaire et/ou le groupe propriétaire d'un dossier et de tous les fichiers/sous-dossiers contenus :

1
chown -R nouvel_utilisateur:nouveau_groupe undossier

-R pour la récursivité, en majuscule !

MéthodeChanger les droits en utilisant l'écriture octale

  • Attribuer des droits de lecture et écriture au propriétaire seul sur le fichier de nom fichier1 :

1
cedric@desktop:~/NSI$ chmod 600 fichier1 
2
cedric@desktop:~/NSI$ ls -l
3
total 12
4
drwxrwxr-x 2 cedric cedric 4096 févr. 17 16:21 Activites_Linux
5
-rw------- 1 cedric cedric  106 févr. 17 16:23 fichier1
6
-rw-r--r-- 1 cedric cedric  538 févr. 17 16:24 fichier2
7

600 correspond à 400+200 (soit à rw- --- ---).

  • Attribuer tous les droits au propriétaire et aucun au groupe propriétaire et aux autres sur /home/cedric/NSI et tout ce qu'il contient :

1
cedric@desktop:~/NSI$ chmod -R 700 /home/cedric/NSI/
2
cedric@desktop:~/NSI$ ls -l
3
total 12
4
drwx------ 2 cedric cedric 4096 févr. 17 16:21 Activites_Linux
5
-rwx------ 1 cedric cedric  106 févr. 17 16:23 fichier1
6
-rwx------ 1 cedric cedric  538 févr. 17 16:24 fichier2

L'option -R (récursif) est ce qui permet d'attribuer les droits choisis non seulement au répertoire, mais aussi à tout son contenu.

700 correspond à 400+200+100 (soit à rwx --- ---).

On notera que la récursivité s'écrit avec -R pour éviter la confusion avec le r de read...

MéthodeChanger les droits en utilisant les utilisateurs et les actions

Il existe un autre moyen de modifier les droits d'un fichier avec la commande chmod.

Dans ce mode d'utilisation, il faut se rappeler que :

  • u signifie : user (propriétaire) ;

  • g signifie : group (groupe) ;

  • o signifie : other (autres) ;

... et que :

  • + signifie : « Ajouter le droit » ;

  • - signifie : « Supprimer le droit » ;

  • = signifie : « Affecter le droit ».

  • Ajouter le droit d'écriture au groupe sur unfichier :

1
chmod g+w unfichier
  • Enlever le droit de lecture aux autres sur unfichier :

1
chmod o-r  unfichier
  • Ajouter les droits de lecture et d'exécution au propriétaire sur unfichier :

1
chmod u+rx unfichier
  • Ajouter le droit d'écriture au groupe et l'enlever aux autres sur unfichier:

1
chmod g+w,o-w unfichier
  • Enlever le droit de lecture au groupe et aux autres sur unfichier :

1
chmod go-r unfichier
  • Ajouter le droit d'exécution à tout le monde sur unfichier:

1
chmod +x unfichier
  • Affecter tous les droits au propriétaire, juste la lecture au groupe, rien aux autres sur unfichier:

1
chmod u=rwx,g=r,o=- unfichier