Vous avez donc trouvé une version de Linux que vous aimez, mais maintenant vous êtes confus parce que vous n'avez pas la moindre idée des commandes de terminal et des autorisations de fichiers Linux ?
Ou peut-être que vous avez un site Web hébergé sur un serveur Linux et que vous avez rencontré des problèmes d'autorisation de fichiers qui ne peuvent être résolus qu'avec de la magie en ligne de commande.
Quoi qu'il en soit, l'une des commandes Linux les plus essentielles à apprendre est une commande petite mais puissante appelée chmod . Mais avant d'expliquer ce que fait la commande, nous devons d'abord comprendre un peu comment Linux gère la sécurité des fichiers.
Les systèmes d'exploitation Linux sont en fait des systèmes de type Unix (comprenant Linux par rapport à Unix), et les systèmes de type Unix abordent les autorisations de fichiers comme suit :
Chaque fichier a un propriétaire , qui détermine la "classe d'utilisateurs" du fichier. Chaque fichier a également un groupe , qui détermine la "classe de groupe" du fichier. Tout utilisateur du système qui n'est pas le propriétaire et n'appartient pas au même groupe est considéré comme autres .
Tous les fichiers sur les systèmes de type Unix ont des autorisations attribuées aux trois classes, et celles-ci déterminent quelles actions peuvent être entreprises par lesdites classes pour le fichier donné.
Les trois actions disponibles sur un système de type Unix sont :lire (la possibilité d'ouvrir et d'afficher le contenu du fichier), écrire (la possibilité d'ouvrir et de modifier le contenu d'un fichier), et exécuter (la possibilité d'exécuter le fichier en tant que programme exécutable).
En d'autres termes, les autorisations d'un fichier déterminent si oui ou non :
Les autorisations de fichiers Linux peuvent être affichées dans deux formats.
Le premier format est appelé notation symbolique , qui est une chaîne de 10 caractères :un caractère qui représente le type de fichier, puis neuf caractères qui représentent les autorisations de lecture (r), d'écriture (w) et d'exécution (x) du fichier dans l'ordre du propriétaire, du groupe et des autres. Si non autorisé, le symbole du tiret (-) est utilisé.
Par exemple :
-rwxr-xr--
Cela signifie qu'il s'agit d'un fichier normal avec des autorisations de lecture, d'écriture et d'exécution pour le propriétaire ; autorisations de lecture et d'exécution pour le groupe ; et lire uniquement les autorisations pour tous les autres.
Le deuxième format est appelé notation numérique , qui est une chaîne de trois chiffres représentant chacun l'utilisateur, le groupe et d'autres autorisations, respectivement. Chaque chiffre peut aller de 0 à 7, et la valeur de chaque chiffre est obtenue en additionnant les permissions de la classe :
En d'autres termes, la signification de chaque valeur numérique finit par être :
Ainsi, l'exemple ci-dessus (
-rwxr-xr--
) serait 754 en notation numérique.
Voilà les autorisations de fichiers Linux en un mot.
Sur les systèmes de type Unix, chmod est une commande au niveau du système qui signifie "modifier le mode" et vous permet de modifier manuellement les paramètres d'autorisation d'un fichier.
À ne pas confondre avec chown , qui est une autre commande au niveau du système sur les systèmes de type Unix qui signifie "changer de propriétaire" et vous permet d'attribuer la propriété d'un fichier à un autre utilisateur, ou chgrp , qui signifie "changer de groupe" et attribue un fichier à un autre groupe. Il est important de les connaître, mais ils ne sont pas aussi couramment utilisés que chmod.
Définir les autorisations d'un fichier sur 644 fait en sorte que seul le propriétaire peut accéder et modifier le fichier comme il le souhaite, tandis que tout le monde peut uniquement accéder sans modifier, et personne ne peut exécuter le fichier --- pas même le propriétaire. Il s'agit du paramètre idéal pour les fichiers accessibles au public, car il concilie flexibilité et sécurité.
Définir les autorisations d'un fichier sur 755 est fondamentalement la même chose que 644, sauf que tout le monde a également des autorisations d'exécution. Ceci est principalement utilisé pour les répertoires accessibles au public car l'autorisation d'exécution est nécessaire pour accéder à un répertoire.
Définir les autorisations d'un fichier sur 555 fait en sorte que le fichier ne peut pas être modifié du tout par quiconque sauf le superutilisateur du système (en savoir plus sur le superutilisateur Linux). Ce n'est pas aussi couramment utilisé que 644, mais il est toujours important de le savoir car le paramètre de lecture seule empêche les modifications accidentelles et/ou la falsification.
Définir les autorisations d'un fichier sur 777 permet à n'importe qui de faire ce qu'il veut avec le fichier. Il s'agit d'un énorme risque de sécurité, en particulier sur les serveurs Web ! Littéralement, n'importe qui peut accéder au fichier, le modifier comme il le souhaite et l'exécuter sur le système. Vous pouvez imaginer les dommages potentiels si un utilisateur malveillant mettait la main dessus.
La commande chmod a un format simple :
chmod [autorisations] [fichier]
Les autorisations peuvent être données en notation numérique, qui est le meilleur format à utiliser lorsque vous souhaitez attribuer des autorisations spécifiques pour toutes les classes :
chmod 644 exemple.txt
Les autorisations peuvent également être données en notation symbolique, ce qui est utile lorsque vous souhaitez uniquement modifier les autorisations d'une classe particulière. Par exemple :
chmod u=rwx exemple.txt
chmod g=rw exemple.txt
chmod o=rw exemple.txt
Vous pouvez modifier les autorisations pour plusieurs classes, comme cet exemple qui définit le propriétaire en lecture/écriture/exécution mais le groupe et les autres en lecture/exécution :
chmod u=rwx,g=rw,o=rw example.txt
Lorsque vous attribuez les mêmes autorisations à plusieurs classes, vous pouvez les combiner :
chmod u=rwx,go=rw example.txt
Mais la beauté de l'utilisation de la notation symbolique brille lorsque vous souhaitez uniquement ajouter ou supprimer l'autorisation d'une action particulière pour une classe particulière.
Par exemple, cela ajoute l'autorisation d'exécution pour le propriétaire du fichier :
chmod u+x exemple.txt
Et cela supprime les autorisations d'écriture et d'exécution pour les autres utilisateurs :
chmod o-wx exemple.txt
Enfin, si vous souhaitez appliquer un ensemble particulier d'autorisations à tous les fichiers et dossiers d'un répertoire particulier (c'est-à-dire un chmod récursif), utilisez l'option -R et ciblez un répertoire :
chmod -R 755 example_directory
Bien que la commande chmod semble un peu folle à première vue, elle est en fait assez simple et tout à fait logique. Si vous comprenez ce qui précède, vous avez pratiquement maîtrisé chmod !
Les commandes telles que chmod, chown et chgrp ne sont que la pointe de l'iceberg Linux. Si vous êtes nouveau sur le système d'exploitation, nous vous recommandons de consulter ces astuces pour les débutants Linux ainsi que ces commandes Linux que vous ne devriez jamais exécuter.
Mais surtout, vous feriez mieux de consulter notre guide complet du débutant sur Ubuntu et Linux, qui vous apprendra tout ce que vous devez savoir pour démarrer et vous familiarisera suffisamment pour vous sentir à l'aise.