Permissions
Les permissions en Linux sont un élément fondamental de la sécurité du système. Elles déterminent qui peut lire, modifier, ou exécuter des fichiers et des répertoires. Les permissions sont cruciales dans un système multi-utilisateur comme Linux, où elles garantissent la sécurité des données de chaque utilisateur.
1. Système de Permissions de Linux
Chaque fichier et répertoire sous Linux possède trois types de permissions : Lecture (Read), Écriture (Write), et Exécution (Execute). Ces permissions sont définies pour trois types de propriétaires :
Propriétaire (User) : L'utilisateur qui possède le fichier ou le répertoire.
Groupe (Group) : Le groupe auquel appartient le fichier ou le répertoire.
Autres (Others) : Tous les autres utilisateurs.
Les permissions sont souvent affichées sous forme de chaîne de caractères de dix positions, par exemple :
Voici comment interpréter cette chaîne :
Premier caractère (
-) : Indique le type de fichier.-: Fichier normald: Répertoire (dossier)l: Lien symbolique
Caractères 2-4 (
rwx) : Permissions du propriétaire (user).r: Lire (read)w: Écrire (write)x: Exécuter (execute)
Caractères 5-7 (
r-x) : Permissions du groupe (group).r: Lire-: Pas de permission d'écriturex: Exécuter
Caractères 8-10 (
r--) : Permissions des autres utilisateurs (others).r: Lire-: Pas de permission d'écriture-: Pas de permission d'exécution
2. Utiliser la Commande ls -l pour Afficher les Permissions
Pour voir les permissions d'un fichier ou d'un répertoire, utilisez la commande ls -l:
La sortie pourrait ressembler à ceci :
-rwxr-xr--: Les permissions.1: Nombre de liens vers le fichier.user: Propriétaire du fichier.group: Groupe propriétaire du fichier.1024: Taille du fichier (en octets).Mar 25 10:00: Date et heure de la dernière modification.fichier.txt: Nom du fichier.
3. Modifier les Permissions avec chmod
La commande chmod est utilisée pour modifier les permissions d'un fichier ou d'un répertoire. Il y a deux façons principales d'utiliser chmod: notation symbolique et notation numérique.
a. Notation Symbolique
La notation symbolique utilise des lettres pour indiquer les permissions à ajouter, retirer ou définir.
Syntaxe:
chmod [qui][action][permission] fichierqui:
u(propriétaire),g(groupe),o(autres),a(tous).action:
+(ajouter),-(retirer),=(définir).permission:
r(lecture),w(écriture),x(exécution).
Exemples:
Ajouter la permission d'exécution au propriétaire :
chmod u+x fichier.txtRetirer la permission de lecture au groupe :
chmod g-r fichier.txtDéfinir des permissions spécifiques pour tous les utilisateurs (lecture et écriture uniquement) :
chmod a=rw fichier.txt
b. Notation Numérique
La notation numérique (octale) utilise des chiffres pour représenter les permissions. Chaque permission est attribuée une valeur numérique :
Lecture (r):
4Écriture (w):
2Exécution (x):
1
Pour définir les permissions, on additionne les valeurs :
Lecture, écriture et exécution (
rwx):4 + 2 + 1 = 7Lecture et écriture (
rw-):4 + 2 = 6Lecture et exécution (
r-x):4 + 1 = 5
La commande chmod utilise trois chiffres pour représenter les permissions du propriétaire, du groupe, et des autres.
Exemples:
Définir les permissions à
rwxpour le propriétaire,r-xpour le groupe, etr--pour les autres :chmod 754 fichier.txt7: Le propriétaire peut lire, écrire, et exécuter.5: Le groupe peut lire et exécuter.4: Les autres peuvent seulement lire.
Définir les permissions à
rw-pour le propriétaire,r--pour le groupe, et rien pour les autres :chmod 640 fichier.txt
4. Modifier le Propriétaire et le Groupe avec chown
La commande chown est utilisée pour modifier le propriétaire et/ou le groupe d'un fichier ou d'un répertoire.
Syntaxe: chown [propriétaire][:groupe] fichier
Exemples:
Modifier le propriétaire du fichier à
alice:sudo chown alice fichier.txtModifier le propriétaire et le groupe du fichier à
aliceetstaff:sudo chown alice:staff fichier.txt
5. Commande chgrp pour Changer le Groupe
La commande chgrp est utilisée pour changer le groupe d'un fichier ou d'un répertoire.
Syntaxe: chgrp [groupe] fichier
Exemple:
Modifier le groupe du fichier à
staff:sudo chgrp staff fichier.txt
6. Permissions Spéciales
En plus des permissions de base, Linux propose des permissions spéciales pour les fichiers et répertoires :
a. SUID (Set User ID)
Lorsque le bit SUID est défini sur un fichier exécutable, les utilisateurs exécutant ce fichier obtiennent les permissions du propriétaire pendant l'exécution.
sudo est nécessaire ici!
Exemple:
Pour définir le bit SUID :
sudo chmod u+s fichier
b. SGID (Set Group ID)
Lorsque le bit SGID est défini sur un répertoire, tous les fichiers créés dans ce répertoire appartiendront au même groupe que le répertoire.
Exemple:
Pour définir le bit SGID sur un répertoire :
chmod g+s repertoire
c. Sticky Bit
Le sticky bit est utilisé sur des répertoires pour faire en sorte que seuls le propriétaire du fichier (ou le superutilisateur) puisse le supprimer ou le renommer. Cela est souvent utilisé pour les répertoires comme /tmp.
Exemple:
Pour définir le sticky bit :
chmod +t /tmp
7. Masque de Permission (umask)
Le umask est un paramètre qui contrôle les permissions par défaut des nouveaux fichiers et répertoires. Par exemple, si le umask est défini à 022, les fichiers nouvellement créés auront des permissions par défaut de 644 (rw-r--r--).
Pour voir le umask actuel :
Pour définir le umask:
Conclusion
Les permissions en Linux permettent de contrôler qui peut accéder aux fichiers et répertoires et de quelle manière. Elles sont essentielles pour garantir la sécurité et l'intégrité des données, notamment dans un environnement multi-utilisateur. Comprendre et utiliser les commandes comme chmod, chown, et chgrp vous permet de bien gérer les accès et la sécurité sur votre système Linux.