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.
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 :
- Lecture (r) : Voir le contenu du fichier
- Écriture (w) : Modifier ou supprimer le fichier
- 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 :
- Lecture (r) : Lister le contenu du répertoire
- Écriture (w) : Ajouter ou supprimer des fichiers dans le répertoire
- 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