Unix / Linux - File Permission / Access Modes

Bonjour là-bas, aspirants programmeurs ! Aujourd'hui, nous plongeons dans le monde fascinant des permissions de fichiers Unix et Linux. Ne vous inquiétez pas si vous êtes nouveau dans ce domaine ; d'ici la fin de ce tutoriel, vous serez un expert des permissions de fichiers ! Mettons-nous en route pour cette aventure passionnante ensemble.

Unix / Linux - File Permission

Les Indicateurs de Permission

Imaginez que vous êtes le gardien d'un coffre au trésor. Vous devez décider qui peut l'ouvrir, qui peut y ajouter des choses et qui peut en retirer. C'est essentiellement à quoi servent les permissions de fichiers dans Unix et Linux !

Lorsque vous listez des fichiers en utilisant la commande ls -l, vous verrez quelque chose comme ça :

-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt

Décomposons ces lettres mystérieuses au début :

  • Le premier caractère indique le type de fichier (- pour fichier régulier, d pour répertoire)
  • Les 9 caractères suivants représentent les permissions pour l'utilisateur, le groupe et les autres

Voici un tableau pratique pour se souvenir de ce que signifie chaque lettre :

Lettre Signification
r Permission de lecture
w Permission d'écriture
x Permission d'exécution
- Aucune permission

Modes d'Accès aux Fichiers

Maintenant, parlons de ce que ces permissions vous permettent réellement de faire avec les fichiers :

  1. Lecture (r) : Voir le contenu du fichier
  2. Écriture (w) : Modifier ou supprimer le fichier
  3. Exécution (x) : Exécuter le fichier en tant que programme ou script

Voici un moyen amusant de se souvenir : Pensez à "r" comme "lire la recette", "w" comme "écrire la recette", et "x" comme "exécuter la recette" (préparer le plat) !

Modes d'Accès aux Répertoires

Les répertoires ont des permissions similaires, mais elles fonctionnent un peu différemment :

  1. Lecture (r) : Lister le contenu du répertoire
  2. Écriture (w) : Ajouter ou supprimer des fichiers dans le répertoire
  3. Exécution (x) : Accéder au répertoire et à son contenu

Imaginez un répertoire comme une pièce. "r" vous permet de jeter un coup d'œil à l'intérieur, "w" vous permet d'ajouter ou de retirer du mobilier, et "x" vous permet d'entrer dans la pièce.

Modification des Permissions

Maintenant que nous comprenons les permissions, apprenons comment les modifier ! Nous utilisons la commande chmod pour cela. Il y a deux façons d'utiliser chmod : le mode symbolique et le mode absolu.

Mode Symbolique

C'est comme donner des instructions pour ajouter ou supprimer des permissions. Voici la syntaxe de base :

chmod [qui][+,-,=][permissions] nomdefichier
  • qui peut être u (utilisateur), g (groupe), o (autres), ou a (tous)
  • + ajoute la permission, - la supprime, = la définit exactement
  • permissions sont r, w, ou x

Par exemple :

chmod u+x nomdefichier.txt

Cela ajoute la permission d'exécution pour l'utilisateur.

Utilisation de chmod avec des Permissions Absolues

Le mode absolu utilise des nombres pour définir les permissions. Chaque permission a une valeur :

  • r = 4
  • w = 2
  • x = 1

Nous additionnons ces valeurs pour chaque catégorie (utilisateur, groupe, autres). Voici un tableau pour vous aider à comprendre :

Nombre Permission
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

Par exemple :

chmod 755 nomdefichier.txt

Cela définit rwx pour l'utilisateur, et rx pour le groupe et les autres.

Modification des Propriétaires et des Groupes

Parfois, vous devez changer qui possède un fichier ou à quel groupe il appartient. Regardons comment faire cela.

Modification du Propriétaire

Pour changer le propriétaire d'un fichier, nous utilisons la commande chown :

chown nouveauproprietaire nomdefichier

Par exemple :

chown alice nomdefichier.txt

Cela change le propriétaire de nomdefichier.txt en alice.

Modification de la Propriété de Groupe

Pour changer le groupe, nous utilisons la commande chgrp :

chgrp nouveaugroupe nomdefichier

Par exemple :

chgrp developpeurs nomdefichier.txt

Cela change le groupe de nomdefichier.txt en developpeurs.

Permissions SUID et SGID

Maintenant, parlons de quelques permissions spéciales : SUID (Set User ID) et SGID (Set Group ID). Ce sont comme des superpuissances pour les fichiers !

  • SUID : Lorsqu'il est défini sur un fichier exécutable, il s'exécute avec les permissions du propriétaire.
  • SGID : Lorsqu'il est défini sur un fichier exécutable, il s'exécute avec les permissions du groupe.

Pour les définir, nous utilisons chmod avec un nombre spécial :

chmod 4755 nomdefichier    # Définir SUID
chmod 2755 nomdefichier    # Définir SGID

Le 4 au début définit SUID, et 2 définit SGID.

Et voilà ! Vous êtes maintenant bien informé sur le monde des permissions de fichiers Unix/Linux. Souvenez-vous, avec grand pouvoir vient grande responsabilité. Utilisez ces permissions avec sagesse pour maintenir la sécurité et la protection de vos fichiers.

La pratique rend parfait, donc n'ayez pas peur d'expérimenter (dans un environnement sûr, bien sûr). Avant de vous en rendre compte, vous gérerez les permissions de fichiers comme un pro !

Credits: Image by storyset