Droits d'accès aux fichiers et répertoires

Mise à jour : Debian 10.10 / Buster

Sommaire

1 - Propriétés des fichiers

$ ls -l |grep exemple
-rw-r--r-- 1 pengouin pengouin 0 mars 18 14:37 exemple_fichier
lrwxrwxrwx 1 pengouin pengouin 15 mars 18 14:40 exemple_lien -> exemple_fichier
drwxr-xr-x 2 pengouin pengouin 4096 mars 18 14:37 exemple_répertoire

$ ls -n |grep exemple
-rw-r--r-- 1 1000 1000 0 mars 18 14:37 exemple_fichier
lrwxrwxrwx 1 1000 1000 15 mars 18 14:40 exemple_lien -> exemple_fichier
drwxr-xr-x 2 1000 1000 4096 mars 18 14:37 exemple_répertoire
-    Fichier ordinaire
l Lien
d Répertoire
b Périphérique Bloc
c Périphérique Caractère
r       permission de lecture
w permission d'écriture
x permission d'exécution
- la lettre rwx est remplacée par - si la permission n'est pas accordée

2 - Modification de l'appartenance

Seul root peut modifier le propriétaire et le groupe. Les modifications s'effectuent à l'aide de la commande chown.

$ sudo chown pengouinbis fichier_démo
$ ls -l exemple_fichier
-r--r-x--x 1 pengouin pengouinbis 0 mars 18 14:37 exemple_fichier
$ sudo chown :pengouinbis fichier_démo
$ sudo chown pengouinbis:pengouinbis fichier_démo 
$ sudo chown -R pengouin:pengouinbis répertoire_démo

3 - Modification des permissions

3.1 - Principe

3.2 - Modification d'une ou plusieurs permissions - Notation symbolique

Exemples :

$ chmod u+x fichier_exemple
$ chmod g-r+x fichier_exemple
$ chmod a=rw fichier_exemple
$ chmod u+x,g-r+x,o=rw

3.3 - Redéfinition de toutes les permissions - Notation octale

7  => rwx
6 => rw-
5 => r-x
4 => r--
3 => -wx
2 => -w-
1 => --x
0 => ---
$ chmod 431 test

$ ls -l test
-r---wx--x 1 philippe philippe 0 janv. 3 12:16 test

3.4 - Modification récursive

Pour modifier un répertoire et son contenu récursivement :

$ chmod -R 451 exemple_répertoire

3.5.3 Redéfinition de tous les répertoires et fichiers du répertoire courant

$ find * -type f -exec chmod 644 {} \;
$ find ./* -type d -exec chmod 755 {} \;

4 - Permissions par défaut

4.1 - Valeurs

4.1.1 Utilisation de ls -l

$ touch test && ls -n test
-rw-r--r-- 1 1000 1000 0 févr. 14 19:03 test
$ mkdir test && ls -n |grep test
drwxr-xr-x 2 1000 1000 4096 févr. 14 19:07 test

4.1.2 Utilisation du masque de création

$ umask
0022
666-22=644
777-22=755

4.2 - Modification

$ umask 66

$ touch test && ls -n test
-rw------- 1 1000 1000 0 févr. 14 19:20 test

$ mkdir test && ls -n |grep test
drwx--x--x 2 1000 1000 4096 févr. 14 19:23 test

Fermer et réouvrir le shell pour retrouver la valeur par défaut du masque, ou bien la redéfinir dans le shell

$ umask 0022
$ rm test;(umask 66;touch test); ls -og test
-rw------- 1 0 août 24 23:01 test

5 - Création d'un répertoire commun entre plusieurs utilisateurs

5.1 - Avec droits lecture pour tous

$ sudo addgroup club
$ sudo adduser user1 club
$ sudo adduser user2 club
$ sudo chown -R :club répertoire_partagé
$ sudo chmod -R g+s répertoire_partagé

5.2 - Avec droits écritures pour tous sur tous les fichiers créés

https://unix.stackexchange.com/questions/12842/make-all-new-files-in-a-directory-accessible-to-a-group

$ sudo setfacl -d -m group:club:rwx partage
$ sudo setfacl -m group:club:rwx partage

Pour en savoir plus :