La commande Linux pour modifier les autorisations sur un fichier ou un répertoire est chmod, que nous aimons lire comme mode de changement de fichier. chmod a deux modes de fonctionnement :
- mode symbolique
- mode numérique/octal
Pour modifier l'autorisation à l'aide de la commande Linux chmod, nous devons suivre une syntaxe et des règles. Comme nous en avons discuté ci-dessus, nous pouvons modifier l'autorisation en utilisant la méthode numérique et alphabétique, ici j'ai expliqué les deux méthodes avec toutes les astuces.
Chemin alphabétique
Pour utiliser cette méthode, vous devez vous souvenir des règles et des alphabets ci-dessous pour une utilisation correcte. Pour modifier l'autorisation de l'utilisateur, vous devez utiliser l'alphabet "u “. Comme ça pour le groupe "g " et pour d'autres c'est "o ".
Comme l'utilisateur, le groupe et les autres, nous devons nous souvenir de certains alphabets pour donner l'autorisation de lecture, d'écriture et d'exécution. Comme pour l'autorisation de lecture, vous devez utiliser l'alphabet "r ", pour Ecrire "w " et pour Exécuter c'est "x ".
Ainsi, la formule d'attribution des autorisations à l'aide de la commande chmod est indiquée ci-dessous :
- u – Utilisateur
- g – Groupe
- o – Autres
- r – Lire
- w – Écrire
- x – Exécuter
Par exemple, si vous souhaitez donner l'autorisation de lecture et d'écriture à l'utilisateur/propriétaire et l'autorisation de lecture au groupe et aux autres en utilisant la méthode alphabétique, la commande serait :
# chmod u+rw,g+r,o+r file_name
Chemin numérique
Pour utiliser cette méthode, vous devez vous souvenir des règles et des chiffres ci-dessous pour une utilisation correcte.
- 4 - Pour donner l'autorisation de lecture
- 2 - Donner une autorisation d'écriture
- 1 - Pour donner l'autorisation d'exécution
Par exemple, si vous souhaitez donner l'autorisation de lecture et d'écriture à l'utilisateur/propriétaire et l'autorisation de lecture au groupe et aux autres en utilisant la méthode numérique, le calcul de la commande serait :
4+2 =6 :Cela ajoutera l'autorisation de lecture et d'écriture à l'utilisateur/propriétaire.
4 :Cela ajoutera l'autorisation de lecture au groupe.
4 :Cela ajoutera l'autorisation de lecture à l'autre.
La commande ressemblerait donc à :
# chmod 644 filename
Vous pouvez vérifier l'autorisation de n'importe quel fichier en utilisant la commande ci-dessous :
# ls -l file.txt -rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt
Et utilisez la commande ci-dessous pour vérifier l'autorisation d'un répertoire :
# ls -ld data/ drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/
Maintenant, la question est de savoir comment identifier les autorisations attribuées à un fichier ou à un répertoire. C'est assez simple. Ci-dessus, j'ai donné deux exemples. Identifions maintenant l'autorisation de file.txt. Si vous remarquez que les propriétés du fichier commencent par "-rw-rw-r–". Ici, nous pouvons identifier l'autorisation attribuée à file.txt.
La section d'autorisation est divisée en 10 bits dont
"– ” :Le premier bit est chargé d'identifier s'il s'agit d'un fichier, d'un répertoire ou d'un lien symbolique. Reportez-vous aux symboles ci-dessous :
Symboles importants :
- – :Autorisation attribuée à un fichier
- d :Autorisation attribuée à un Répertoire
- l :Autorisation attribuée à un Lien Symbolique
- Les 2e, 3e et 4e bits sont pour l'autorisation du propriétaire.
- Les 5e, 6e et 7e bits sont pour l'autorisation du groupe.
- Les 8e, 9e et 10e bits sont pour l'autorisation des autres.
Pour donner la permission à n'importe quel fichier/répertoire, vous devez utiliser "+ " Symbole. Pour supprimer l'autorisation de n'importe quel fichier/répertoire, vous devez utiliser "– ” Symbole.
Exemples d'utilisation de la commande chmod
Attribuer une autorisation à un fichier
Ici, j'ai un fichier nommé file.txt. Donnons l'autorisation de lecture et d'écriture à l'utilisateur/propriétaire à l'aide de la commande chmod.
$ chmod u+rw file.txt
$ ls -l file.txt -rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt
Par Voie Numérique utilisez la commande ci-dessous :
$ chmod 600 file.txt
Attribuer une autorisation à un répertoire
La commande ci-dessous peut être utilisée pour donner l'autorisation à un répertoire. Ici, j'ai un répertoire nommé data. Donnons donc une autorisation complète (lecture, écriture, exécution) à l'utilisateur/propriétaire. Reportez-vous à la commande ci-dessous.
$ chmod u+rwx data/
$ ls -ld data/ drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/
Chemin numérique :
$ chmod 700 data/
Supprimer l'autorisation d'un fichier/répertoire
Supprimez l'autorisation d'un fichier/répertoire à l'aide de la commande Linux chmod ci-dessous. Ici, je supprime l'autorisation de lecture et d'écriture de l'utilisateur/propriétaire.
$ chmod u-rw file.txt
$ ls -l file.txt ----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt
Donner la permission à tout le monde
Vous pouvez utiliser la commande ci-dessous pour donner la permission à tout le monde. Ici, j'attribue une autorisation complète à tout le monde pour accéder à file.txt. Il existe deux méthodes pour faire la même chose.
Méthode 1
$ chmod a+rwx file.txt
$ ls -l file.txt -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt
Méthode 2
Vous pouvez également utiliser la commande Linux chmod ci-dessous pour faire de même.
$ chmod ugo+rwx file.txt
$ ls -l file.txt -rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt
Chemin numérique :
$ chmod 777 file.txt
Attribuez différentes autorisations à l'utilisateur, au groupe et aux autres à l'aide de la commande chmod Linux unique
Ici, je supprime l'autorisation d'exécution de l'utilisateur/propriétaire et j'ajoute l'autorisation d'exécution au groupe et aux autres en utilisant une seule commande.
$ chmod u-x,g+x,o+x file.txt
$ ls -l file.txt -rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt
Attribuer une autorisation à un fichier en prenant référence à tout autre fichier
Vous pouvez copier l'autorisation d'un fichier à un autre. Ici, j'ai un fichier nommé a1.txt dont la permission est quelque chose comme "-rw-r–r– ".
$ ls -l a1.txt -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt
Maintenant, je veux attribuer la même autorisation à mon autre fichier nommé a2.txt. Vous pouvez le faire en utilisant la commande Linux chmod avec l'argument –reference. Reportez-vous à la commande ci-dessous.
$ chmod --reference=a1.txt a2.txt
$ ls -l a2.txt -rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt
Attribuer une autorisation de manière récursive
J'ai un répertoire nommé data, dans lequel j'ai tellement de fichiers et je veux donner la permission à tous à la fois au lieu de manuellement un par un. Pour cela, vous pouvez utiliser la commande Linux chmod avec l'argument -R. Cela vous aidera à donner la permission de manière récursive.
$ chmod -R ugo+rwx data/
Chemin numérique :
$ chmod -R 777 data/
Attribuer une autorisation avec une sortie détaillée
Vous pouvez obtenir une sortie après avoir attribué une autorisation à tous les fichiers/répertoires en utilisant la commande Linux chmod avec l'argument -v. Reportez-vous à la commande ci-dessous.
$ chmod -v 777 file.txt mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)
Attribuer une autorisation avec sortie (cette commande donnera une sortie uniquement s'il y a des changements)
La commande chmod avec l'argument -c fait également la même chose que la sortie détaillée (c'est-à-dire -v). Mais il n'affichera la sortie que s'il y a des changements dans l'autorisation. Si vous attribuez la même autorisation, aucune sortie ne s'affichera.
$ chmod -c 755 file.txt mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)
Attribuer une autorisation en ignorant/résolvant les erreurs
Pour éviter toute erreur ou pour rectifier toute erreur lors de l'attribution d'une autorisation, vous pouvez utiliser la commande Linux chmod avec l'argument -f. Reportez-vous à la commande ci-dessous.
$ chmod -f 755 file.txt
Pour l'aide de la commande chmod
Pour la commande chmod plus d'options et d'arguments, vous pouvez utiliser la commande ci-dessous.
$ chmod --help Usage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE... Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's mode instead of MODE values -R, --recursive change files and directories recursively --help display this help and exit --version output version information and exit Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'. GNU coreutils online help: [http://www.gnu.org/software/coreutils/] Full documentation at: [http://www.gnu.org/software/coreutils/chmod] or available locally via: info '(coreutils) chmod invocation'
Vérifier la version de la commande chmod
Vous pouvez utiliser la commande Linux chmod avec l'argument –version pour vérifier la version de la commande chmod installée.
$ chmod --version chmod (GNU coreutils) 8.25 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html]. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David MacKenzie and Jim Meyering.