Outils pour utilisateurs

Outils du site


linux:systeme:permissions

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/bash
Vous 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 fichier
Attention : 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 fichier
Attention : 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.

linux/systeme/permissions.txt · Dernière modification : 2022/12/12 09:09 de zandor