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 :
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 :
chown (change owner) ou chgrp (change group)
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éthode : Changer le propriétaire d'un fichier
Changer le propriétaire d'un fichier :
chown nouvel_utilisateur unfichier
Changer le groupe propriétaire d'un fichier :
chgrp nouveau_groupe unfichier
Changer le propriétaire et/ou le groupe propriétaire d'un fichier :
chown nouvel_utilisateur:nouveau_groupe unfichier
Méthode : Changer 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 :
chown -R nouvel_utilisateur:nouveau_groupe undossier
-R pour la récursivité, en majuscule !
Méthode : Changer les droits en utilisant l'écriture octale
Attribuer des droits de lecture et écriture au propriétaire seul sur le fichier de nom fichier1 :
cedric@desktop:~/NSI$ chmod 600 fichier1
cedric@desktop:~/NSI$ ls -l
total 12
drwxrwxr-x 2 cedric cedric 4096 févr. 17 16:21 Activites_Linux
-rw------- 1 cedric cedric 106 févr. 17 16:23 fichier1
-rw-r--r-- 1 cedric cedric 538 févr. 17 16:24 fichier2
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 :
cedric@desktop:~/NSI$ chmod -R 700 /home/cedric/NSI/
cedric@desktop:~/NSI$ ls -l
total 12
drwx------ 2 cedric cedric 4096 févr. 17 16:21 Activites_Linux
-rwx------ 1 cedric cedric 106 févr. 17 16:23 fichier1
-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éthode : Changer 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 :
chmod g+w unfichier
Enlever le droit de lecture aux autres sur unfichier :
chmod o-r unfichier
Ajouter les droits de lecture et d'exécution au propriétaire sur unfichier :
chmod u+rx unfichier
Ajouter le droit d'écriture au groupe et l'enlever aux autres sur unfichier:
chmod g+w,o-w unfichier
Enlever le droit de lecture au groupe et aux autres sur unfichier :
chmod go-r unfichier
Ajouter le droit d'exécution à tout le monde sur unfichier:
chmod +x unfichier
Affecter tous les droits au propriétaire, juste la lecture au groupe, rien aux autres sur unfichier:
chmod u=rwx,g=r,o=- unfichier