Modification des autorisations Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les autorisations de fichiers Linux sont une fonctionnalité de sécurité fondamentale qui contrôle la manière dont les fichiers et les répertoires peuvent être accédés, modifiés et exécutés par différents utilisateurs. Comprendre et gérer efficacement ces autorisations est essentiel pour maintenir la sécurité du système et le partage approprié des ressources.

Dans ce laboratoire (LabEx), vous apprendrez à afficher, définir et modifier les autorisations de fichiers à l'aide de la commande chmod. La commande chmod permet aux administrateurs de contrôler qui peut lire, écrire ou exécuter des fichiers spécifiques, garantissant que les données sensibles restent protégées tout en permettant aux utilisateurs autorisés d'accéder aux ressources nécessaires.

À la fin de ce laboratoire (LabEx), vous serez en mesure de créer des fichiers avec des autorisations spécifiques, de modifier les autorisations de fichiers existantes et d'attribuer des contrôles d'accès basés sur les groupes - des compétences essentielles pour tout administrateur ou utilisateur de système Linux.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 95%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Comprendre les autorisations de fichiers Linux

Linux met en œuvre un système d'autorisations qui permet un contrôle précis sur qui peut accéder aux fichiers et aux répertoires et quelles actions ils peuvent effectuer. Dans cette étape, vous apprendrez comment fonctionnent les autorisations Linux et comment les afficher.

Tout d'abord, accédez au répertoire de travail où vous effectuerez toutes les opérations de ce laboratoire (LabEx) :

cd ~/project

Créons un fichier d'exemple pour examiner ses autorisations :

touch sample_file.txt

Pour afficher les autorisations de ce fichier, utilisez la commande ls avec l'option -l :

ls -l sample_file.txt

Vous devriez voir une sortie similaire à celle-ci :

-rw-rw-r-- 1 labex labex 0 Oct 25 12:34 sample_file.txt

Décortiquons cette sortie :

  1. Le premier caractère (-) indique le type de fichier. Un tiret (-) représente un fichier ordinaire, tandis que d indiquerait un répertoire.

  2. Les neuf caractères suivants représentent les autorisations de fichier en trois groupes de trois :

    • Les trois premiers caractères (rw-) montrent les autorisations du propriétaire.
    • Les trois suivants (rw-) montrent les autorisations du groupe.
    • Les trois derniers (r--) montrent les autorisations pour tous les autres utilisateurs.
  3. Dans chaque groupe, les trois positions représentent :

    • r pour l'autorisation de lecture.
    • w pour l'autorisation d'écriture.
    • x pour l'autorisation d'exécution.
    • - indique que l'autorisation n'est pas accordée.
  4. Après les autorisations, il y a d'autres détails tels que le nombre de liens, le nom du propriétaire, le nom du groupe, la taille du fichier, la date/heure de la dernière modification et le nom du fichier.

Les bits d'autorisation Linux peuvent également être représentés numériquement :

  • Lecture (r) = 4
  • Écriture (w) = 2
  • Exécution (x) = 1

En additionnant ces valeurs, vous pouvez représenter n'importe quelle combinaison d'autorisations sous la forme d'un seul chiffre :

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4

Cela devient important lorsque nous utilisons la commande chmod en mode numérique dans les étapes suivantes.

Créer des fichiers avec des autorisations spécifiques

Dans cette étape, vous allez créer un nouveau fichier et définir ses autorisations initiales pour restreindre l'accès au propriétaire seulement. Cela est utile lorsque vous créez des fichiers contenant des informations sensibles qui ne devraient pas être accessibles aux autres utilisateurs.

Tout d'abord, créez un nouveau fichier appelé secure_file.txt :

touch secure_file.txt

Maintenant, ajoutons du contenu au fichier :

echo "This file contains secure information." > secure_file.txt

Par défaut, la plupart des systèmes Linux créent des fichiers avec des autorisations qui permettent au propriétaire et au groupe de lire et d'écrire, tandis que les autres peuvent seulement lire. Vérifions les autorisations actuelles :

ls -l secure_file.txt

Vous devriez voir une sortie similaire à :

-rw-rw-r-- 1 labex labex 37 Oct 25 12:40 secure_file.txt

Pour un fichier contenant des informations sensibles, nous voulons restreindre l'accès au propriétaire seulement. Nous allons utiliser la commande chmod en mode numérique pour définir les autorisations sur 600, ce qui signifie :

  • Propriétaire : Lecture et écriture (6 = 4+2)
  • Groupe : Aucune autorisation (0)
  • Autres : Aucune autorisation (0)

Exécutez la commande suivante pour changer les autorisations :

chmod 600 secure_file.txt

Maintenant, vérifiez les autorisations à nouveau :

ls -l secure_file.txt

La sortie devrait maintenant montrer :

-rw------- 1 labex labex 37 Oct 25 12:40 secure_file.txt

Remarquez comment les autorisations ont changé - maintenant, seul le propriétaire (utilisateur labex) a les autorisations de lecture et d'écriture, tandis que les membres du groupe et les autres utilisateurs n'ont pas accès à ce fichier.

Essayons de créer un autre fichier, mais cette fois, nous allons définir les autorisations lors de la création en utilisant une autre technique.

Tout d'abord, créez un nouveau fichier appelé public_file.txt avec du contenu :

echo "This file is readable by everyone." > public_file.txt

Maintenant, rendons ce fichier accessible en lecture par tout le monde, mais seulement modifiable par le propriétaire :

chmod 644 public_file.txt

Vérifiez les autorisations :

ls -l public_file.txt

Vous devriez voir :

-rw-r--r-- 1 labex labex 33 Oct 25 12:45 public_file.txt

Ce jeu d'autorisations (644) est couramment utilisé pour les fichiers publics que tout le monde devrait pouvoir lire, mais que seul le propriétaire peut modifier.

Utilisation du mode symbolique avec chmod

Dans l'étape précédente, vous avez utilisé le mode numérique pour définir les autorisations. Maintenant, explorons le mode symbolique, qui offre un moyen plus intuitif de modifier les autorisations.

Le mode symbolique utilise des lettres et des symboles pour représenter les utilisateurs et les autorisations :

  • u - Utilisateur (propriétaire)
  • g - Groupe
  • o - Autres (tous les autres)
  • a - Tous (équivalent à ugo)

Et les symboles d'autorisation :

  • r - Lecture
  • w - Écriture
  • x - Exécution

Créons un fichier de script pour pratiquer :

touch my_script.sh

Ajoutons une commande simple au script :

echo '#!/bin/bash' > my_script.sh
echo 'echo "Hello from the script!"' >> my_script.sh

Vérifions les autorisations actuelles :

ls -l my_script.sh

Vous devriez constater que le script n'est pas exécutable :

-rw-rw-r-- 1 labex labex 44 Oct 25 12:50 my_script.sh

Pour rendre le script exécutable pour le propriétaire, utilisez :

chmod u+x my_script.sh

Cela ajoute (+) l'autorisation d'exécution (x) pour l'utilisateur/propriétaire (u).

Vérifions les autorisations à nouveau :

ls -l my_script.sh

Vous devriez maintenant voir :

-rwxrw-r-- 1 labex labex 44 Oct 25 12:50 my_script.sh

Maintenant, rendons-le exécutable pour tout le monde :

chmod a+x my_script.sh

Cela ajoute l'autorisation d'exécution pour tous les utilisateurs (propriétaire, groupe et autres).

Vérifions les autorisations à nouveau :

ls -l my_script.sh

Vous devriez voir :

-rwxrwxr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Exécutons le script :

./my_script.sh

Vous devriez voir :

Hello from the script!

Vous pouvez également supprimer des autorisations en utilisant l'opérateur -. Par exemple, pour supprimer l'autorisation d'écriture pour le groupe et les autres :

chmod go-w my_script.sh

Vérifions les autorisations :

ls -l my_script.sh

Vous devriez voir :

-rwxr-xr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Vous pouvez également définir plusieurs autorisations à la fois. Par exemple, pour donner les autorisations de lecture et d'exécution à tout le monde, mais l'autorisation d'écriture seulement au propriétaire :

chmod u=rwx,go=rx my_script.sh

Cela définit (=) les autorisations spécifiques pour chaque catégorie.

Vérifions les autorisations une dernière fois :

ls -l my_script.sh

Le résultat devrait être le même que précédemment :

-rwxr-xr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Travailler avec les autorisations de groupe

Linux permet d'associer des fichiers à des groupes, ce qui permet un contrôle d'accès collaboratif. Dans cette étape, vous allez apprendre à créer un groupe, à changer le groupe propriétaire d'un fichier et à définir les autorisations de groupe appropriées.

Tout d'abord, créons un nouveau groupe. Dans un scénario réel, cela pourrait représenter un département ou une équipe de projet :

sudo groupadd developers

Maintenant, créons un fichier qui sera partagé avec ce groupe :

touch shared_config.txt
echo "## Development configuration settings" > shared_config.txt
echo "debug_mode=true" >> shared_config.txt
echo "log_level=verbose" >> shared_config.txt

Actuellement, ce fichier appartient à votre utilisateur et à votre groupe principal. Vérifions :

ls -l shared_config.txt

Vous devriez voir une sortie similaire à :

-rw-rw-r-- 1 labex labex 61 Oct 25 13:00 shared_config.txt

Pour changer le groupe propriétaire du fichier en le groupe developers, utilisez la commande chown :

sudo chown labex:developers shared_config.txt

La syntaxe est chown utilisateur:groupe nom_fichier. Ici, nous conservons l'utilisateur labex mais changeons le groupe en developers.

Vérifions maintenant la propriété :

ls -l shared_config.txt

Vous devriez voir :

-rw-rw-r-- 1 labex developers 61 Oct 25 13:00 shared_config.txt

Remarquez que le groupe a été changé en developers, mais les autorisations sont toujours les mêmes. Modifions-les pour permettre aux membres du groupe de lire mais pas d'écrire, tout en empêchant l'accès des autres :

chmod 640 shared_config.txt

Cela définit :

  • Propriétaire : Lecture et écriture (6 = 4+2)
  • Groupe : Lecture seule (4)
  • Autres : Aucune autorisation (0)

Vérifions les autorisations à nouveau :

ls -l shared_config.txt

Vous devriez maintenant voir :

-rw-r----- 1 labex developers 61 Oct 25 13:00 shared_config.txt

Maintenant, les membres du groupe developers peuvent lire ce fichier de configuration, mais ils ne peuvent pas le modifier. Les utilisateurs qui ne font pas partie du groupe developers n'ont pas accès au fichier du tout.

Vous pouvez également utiliser le mode symbolique pour obtenir le même résultat :

chmod u=rw,g=r,o= shared_config.txt

Cette commande définit explicitement :

  • Utilisateur/propriétaire : Lecture et écriture
  • Groupe : Lecture seule
  • Autres : Aucune autorisation

Pour ajouter un utilisateur au groupe developers, vous utiliseriez généralement :

sudo usermod -a -G developers username

Cependant, cela dépasse le cadre de ce laboratoire particulier, car cela nécessiterait de créer des comptes d'utilisateur supplémentaires.

Résumé

Dans ce laboratoire, vous avez appris les concepts et les pratiques essentielles des autorisations de fichiers Linux. Voici un récapitulatif de ce que vous avez accompli :

  1. Vous avez compris le fonctionnement des modèles d'autorisations Linux, y compris les concepts d'autorisations de lecture, d'écriture et d'exécution pour les utilisateurs, les groupes et les autres.

  2. Vous avez créé des fichiers avec des autorisations spécifiques, en apprenant à utiliser la commande chmod en mode numérique pour définir les niveaux d'accès appropriés pour différents types de fichiers.

  3. Vous avez exploré le mode symbolique de la commande chmod, qui offre une approche plus intuitive pour ajouter, supprimer ou définir des autorisations spécifiques.

  4. Vous avez travaillé avec les autorisations de groupe, en apprenant à créer des groupes, à changer le groupe propriétaire des fichiers et à définir les contrôles d'accès appropriés au niveau du groupe.

Ces compétences sont fondamentales pour maintenir la sécurité et contrôler l'accès dans les systèmes Linux. Que vous gériez des configurations de serveur, développiez des logiciels ou simplement organisiez vos fichiers personnels, comprendre comment définir et modifier correctement les autorisations de fichiers est une compétence essentielle pour tout utilisateur Linux.

Au fur et à mesure que vous continuerez à travailler avec Linux, rappelez-vous que la gestion appropriée des autorisations est un élément clé de la sécurité du système. Suivez toujours le principe du moindre privilège - donnez aux utilisateurs et aux processus seulement les autorisations dont ils ont besoin pour effectuer leurs tâches, et pas plus.