chmod - Permissions de fichiers et répertoires
Permissions
Cette commande permet de modifier les permissions sur un fichier/répertoire. Il y a trois types de permission :
r
permission de lecture.w
permission d'écriture.x
permission d'exécution pour un fichier, d'explorer pour un répertoire.
Elles sont modifiables à trois niveaux :
u
au niveau de l'utilisateur.g
au niveau du groupe de l'utilisateur.o
tous les autres utilisateurs.
Ces permissions sont visibles lorsqu'on ls -l
un dossier. Pour un fichier ça ressemble en général à ça :
Décortiquons : -rw-r--r--
.
Le premier caractère indique si l'entrée est un fichier (
-
) ou un dossier (d
).Les trois suivants indiquent les permissions de l'utilisateur propriétaire (
user
).Si la permission est accordée, elle apparaît, sinon il y a un
-
à la place. Elles sonttoujours dans l'ordre
rwx
.Les trois suivants indiquent les permissions des utilisateurs de son groupe.
Les trois derniers indiquent les permissions de tous les autres utilisateurs.
Notation numérique
Il est possible d'utilisation numérique. Les trois types de permissions peuvent être représentées par leur somme :
la permission de lecture vaut 4
la permission d'écriture vaut 2
la permission d'exécution vaut 1
En juxtaposant ce chiffre pour l'utilisateur, le groupe et les autres on obtient un nombre à trois chiffres (ex : 777 pour tous les droits).
Pour un fichier, on applique en général 644 (équivalent de rw-r--r--
) : on ne veut pas qu'on puisse l'exécuter par défaut par sécurité.
Pour un répertoire, on applique en général 755 (équivalent de rwxr-xr-x
) : on veut pouvoir explorer un répertoire !
Changer les permissions
Notation classique
On indique les permissions que l'on veut ajouter/enlever.
Pour ajouter le droit d'exécution à l'utilisateur :
chmod u+x fichier
.Pour enlever le droit d'écriture au groupe :
chmod g-w fichier
.Si on veut affecter tous les objets d'un répertoire, il faut ajouter l'option de récursivité :
chmod -R o-w rep
.Pour enlever le droit d'exécution pour tout le monde :
chmod a-w fichier
(a
pour tout le monde).
Notation numérique
On indique le code à appliquer.
Pour n'affecter que les dossiers :
find /path/to/base/dir -type d -exec chmod 755 {} +
.Pour n'affecter que les fichiers :
find /path/to/base/dir -type f -exec chmod 644 {} +
.
Dernière mise à jour