L'autorisation de fichier et de répertoire Unix se présente sous la forme d'une structure 3 × 3. c'est-à-dire trois autorisations (lecture, écriture et exécution) disponibles pour trois types d'utilisateurs (propriétaire, groupes et autres).
Dans la sortie de la commande ls -l, les 9 caractères de la 2e à la 10e position représentent les autorisations pour les 3 types d'utilisateurs.
-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt
Dans l'exemple ci-dessus :
- L'utilisateur (sathiya) est autorisé à lire et à écrire
- Le groupe dispose d'une autorisation de lecture
- D'autres ont l'autorisation de lecture
Trois autorisations de fichiers :
- lire :autorisé à lire le contenu du fichier.
- écrire :autorisé à écrire dans le fichier.
- exécuter :autorisé à exécuter le fichier en tant que programme/script.
Trois autorisations de répertoire :
- lire :autorisé à lire le contenu du répertoire (voir les fichiers et les sous-répertoires de ce répertoire).
- écrire :autorisé à écrire dans le répertoire. (créer des fichiers et des sous-répertoires dans ce répertoire)
- exécuter :autorisé à entrer dans ce répertoire.
Valeurs numériques pour les autorisations de lecture, d'écriture et d'exécution :
- lire 4
- écrire 2
- exécuter 1
Pour avoir une combinaison d'autorisations, ajoutez les nombres requis. Par exemple, pour les autorisations de lecture et d'écriture, c'est 4+2 =6.
Modifier les autorisations de fichiers et de répertoires à l'aide de la commande Chmod
Vous pouvez utiliser la représentation octale ou la représentation symbolique pour modifier l'autorisation d'un fichier ou d'un répertoire.
Représentation octale pour les autorisations :
- Le premier numéro est pour l'utilisateur
- Le deuxième numéro est pour le groupe
- Le troisième numéro est pour les autres
Par exemple, donnez lecture, écriture ( 4+2 =6 ) à l'utilisateur et lecture ( 4 ) au groupe et autres.
$ chmod 644 filename
Par exemple, donnez lecture, exécution ( 4 + 1 =5 ) à l'utilisateur et lecture (4 ) au groupe, et rien ( 0 ) aux autres.
$ chmod 540 filename
Par exemple, donnez lecture, écriture ( 4 + 2 =6 ) à l'utilisateur et rien ( 0 ) au groupe, et lecture ( 4 ) aux autres.
$ chmod 604 filename
Umask 022 est responsable de l'autorisation par défaut d'un fichier
La valeur umask par défaut est 0022, qui détermine l'autorisation par défaut pour un nouveau fichier ou répertoire. L'autorisation par défaut pour un répertoire est 0777, pour les fichiers, les autorisations sont 0666 à partir de laquelle la valeur umask par défaut 0022 est déduite pour obtenir les fichiers nouvellement créés ou l'autorisation de répertoire.
L'autorisation finale par défaut pour un fichier est calculée comme indiqué ci-dessous :
- Autorisation de fichier par défaut :666
- umask par défaut :022
- Autorisation finale par défaut du fichier : 644
L'autorisation finale par défaut pour un répertoire est calculée comme indiqué ci-dessous :
- Autorisation de répertoire par défaut :777
- Umask par défaut :022
- Autorisation finale par défaut du répertoire :755
Vous pouvez modifier la valeur umask à la valeur appropriée de ce dont vous avez besoin en fonction du calcul ci-dessus. Par exemple, si vous ne voulez pas que quelqu'un d'autre que l'utilisateur (propriétaire) fasse quoi que ce soit sur le fichier ou le répertoire, vous pouvez donner umask comme 0077.
$ umask 0077
Après cela, si vous créez un fichier ou un répertoire, il n'aura des autorisations que pour l'utilisateur, comme indiqué ci-dessous :
$ > testfile $ ls -l testfile -rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile