Table des matières
Linux
Gestion des permissions
Permissions des fichiers et répertoires
Visualiser les permissions sur un fichier
Les droits d'accès (permissions) à un fichier sont définis par un groupe de 10 caractères. On peut les visualiser en faisant la commande suivante :
$ ls -l fichier -rw-r--r-- 1 olivier groupe1 0 Dec 6 15:54 fichier
Ces permissions se lisent comme ça :
On observe également la valeur octale des permissions :
- r = 4
- w = 2
- x = 1
Dans l'exemple du fichier fichier
, on peut détailler les permissions comme suit :
- | rw- | r– | r– |
---|---|---|---|
- | 6 | 4 | 4 |
c'est un fichier classique | le propriétaire (olivier) peut accéder en lecture et écriture | les membres du groupe “groupe1” peuvent seulement accéder en lecture | tout le monde peut accéder en lecture |
Modifier les permissions (chmod)
- Forme littérale
Avec la commande chmod
, on va choisir :
A qui s'applique le changement | u (user) g (group) o (others) a (all=ensemble des 3 catégories) |
La modification que l'on veut faire | + : ajouter - : supprimer = : affectation |
Le droit que l'on veut modifier | r : read w : write x : execute X : eXecute ⇒ concerne uniquement les répertoires |
# On ajoute les droits d'écriture au groupe et aux autres $ chmod g+w,o+w fichier # D'autres possibilités de définir ces droits $ chmod u=rw,g=rw,o=rw fichier $ chmod a=rw fichier $ ls -l fichier -rw-rw-rw- 1 olivier groupe1 0 Dec 6 15:54 fichier
- Forme octale
On a vu plus haut que chaque droit d'accès a une valeur octale. En additionnant les valeurs souhaitées, on peut affecter rapidement les droits aux différentes catégories d'utilisateurs.
Les valeurs possibles sont :
0 | - - - | (aucun droit) |
---|---|---|
1 | - - x | (exécution) |
2 | - w - | (écriture) |
3 | - w x | (écriture et exécution) |
4 | r - - | (lecture seule) |
5 | r - x | (lecture et exécution) |
6 | r w - | (lecture et écriture) |
7 | r w x | (lecture, écriture et exécution) |
$ chmod 666 fichier -rw-rw-rw- 1 olivier groupe1 0 Dec 6 15:54 fichier $ chmod 750 fichier -rwxr-x--- 1 olivier groupe1 0 Dec 6 15:54 fichier
Modifier le propriétaire / groupe (chown / chgrp)
Il arrive parfois que l’on ait besoin de changer soit le nom de l’utilisateur, soit le nom du groupe.
- Changement de propriétaire
Pour changer le propriétaire d'un fichier, il faut bien sûr attribuer un user existant.
Vous trouverez la liste des users du système dans le fichier /etc/passwd
.
En ligne de commande dans un terminal, on peut taper :
$ cat /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash bin:x:1:1:bin:/bin:/bin/bash bsmuser:x:491:491:Agent supervision BSM:/opt/BSMAgent:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash ftp:x:40:49:FTP account:/srv/ftp:/bin/bash ftpsecure:x:493:65534:Secure FTP User:/var/lib/empty:/bin/false games:x:12:100:Games account:/var/games:/bin/bash lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false ... olivier:x:43676:7041:Olivier:/home/olivier:/bin/bash fabien:x:43676:7041:Fabien:/home/fabien:/bin/bashVous pouvez changer le propriétaire avec la commande suivante :
$ sudo chown fabien fichier $ ls -l fichier -rwxr-x--- 1 fabien groupe2 0 Dec 6 15:54 fichierAttention : Seul
root
peut faire cette opération.
- Changement de groupe
Pour changer le groupe propriétaire d'un fichier, il faut bien sûr attribuer un groupe existant.
Vous trouverez la liste des noms de groupe dans le fichier /etc/group
.
En ligne de commande dans un terminal, on peut taper :
$ cat /etc/group adm:x:486: at:x:25: audio:x:17: bin:x:1:daemon,usrtech bsmuser:x:491:bsmuser cdrom:x:20: console:x:21: daemon:x:2: ... groupe1:x:7041: groupe2:x:7042:Ce qui nous donne un aperçu des groupes utilisés sur notre système.
Vous pouvez changer le nom du groupe avec la commande suivante :
$ chgrp groupe2 fichier $ ls -l fichier -rwxr-x--- 1 olivier groupe2 0 Dec 6 15:54 fichierAttention : si vous ne faites pas partie du groupe de destination, vous n'aurez pas le droit de faire cette opération. Il faudra demander à l'administrateur de le faire.
$ sudo chgrp groupe2 fichier
- Changement simultané de propriétaire et de groupe
Il est également possible de changer le propriétaire et le groupe en une seule opération, avec la commande chown
:
$ sudo chown fabien:groupe2 fichier
Gestion des permissions par défaut (umask)
L’umask est un outil de gestion des droits sur la création des fichiers et des répertoires qui permet de gérer une certaine sécurité et une restriction des droits par défaut.
En définissant un umask, on retire automatiquement l’umask des droits défini sur la création des futurs fichiers ou répertoires.
umask par défaut
L'umask par défaut est généralement 022.
On peut afficher l'umask courant avec la commande :
$ umask -p umask 0022
Cela signifie que lors de la création, les permissions par défaut sont :
rw-r--r-- fichier #(666-022 => 644) rwxr-xr-x répertoire #(777-022 => 755)
L'umask est défini dans le fichier /etc/login.defs
(ou /etc/profile
).
Il s'applique à tous les utilisateurs du système.
Modifier l'umask temporairement
Par exemple, on peut sécuriser davantage la création de fichiers ou de répertoires :
$ umask 077 $ mkdir repertoire $ touch fichier $ ls -l rw------- fichier (666-077 => 600) rwx------ repertoire (777-077 => 700)
Il faut alors penser à refaire un umask 022
si on souhaite revenir à l'état initial.
Sinon, la valeur de umask sera réinitialisée à l'ouverture de la prochaine session.