Explication des autorisations de fichiers et de répertoires Linux
Linux, en tant que système d'exploitation multi-utilisateurs, permet à plusieurs personnes d'interagir simultanément avec la même machine. Cette caractéristique souligne l'importance d'un système robuste pour garantir la sécurité et la confidentialité des données de chaque utilisateur.
Pour répondre à cette exigence, Linux intègre un mécanisme sophistiqué de gestion des permissions pour les fichiers et répertoires. Ce système permet un contrôle précis sur l'accès aux ressources, définissant les actions que chaque utilisateur peut entreprendre sur l'ordinateur.
Il est donc essentiel pour tout utilisateur Linux de maîtriser la gestion des permissions. Cette compréhension permet de protéger efficacement ses données et d'assurer le bon fonctionnement de son système. Afin de bien saisir ce mécanisme, il est primordial d'examiner les différentes catégories d'utilisateurs dans un environnement Linux.
Les Catégories d'Utilisateurs Sous Linux
La première catégorie est celle du propriétaire. Chaque fichier et répertoire dans Linux est associé à un propriétaire, qui jouit généralement de permissions étendues sur ses ressources. Le propriétaire est souvent identifié par la lettre "u", pour utilisateur.
Linux permet également de regrouper plusieurs utilisateurs en groupes, auxquels des permissions spécifiques peuvent être accordées. Ces groupes, représentés par la lettre "g", facilitent la gestion des accès pour plusieurs personnes ayant des besoins similaires.
Par exemple, si un fichier contient une liste de recommandations de livres et doit être partagé avec plusieurs personnes, il est judicieux de les inclure dans un même groupe et d'attribuer les permissions au niveau du groupe.
La dernière catégorie, identifiée par la lettre "o", regroupe tous les autres utilisateurs du système. Ces utilisateurs ne sont ni propriétaires du fichier, ni membres d'un groupe ayant des permissions spécifiques sur ce fichier. "Autres" représente donc tous les utilisateurs non explicitement couverts par les deux premières catégories.
Enfin, la lettre "a" est utilisée pour désigner l'ensemble des utilisateurs, englobant les propriétaires, les membres de groupes et tous les autres utilisateurs du système.
Création et Ajout d'un Nouvel Utilisateur Sous Ubuntu Linux
Découvrons maintenant comment ajouter un nouvel utilisateur sous Ubuntu Linux. Pour cela, vous pouvez suivre les étapes décrites ci-dessous et créer un nouvel utilisateur.
1. Accédez aux Paramètres et, dans le menu de gauche, sélectionnez "Utilisateurs". Cliquez sur "Déverrouiller" et saisissez votre mot de passe lorsque cela vous est demandé. Cette étape est nécessaire car la fonctionnalité d'ajout d'utilisateur est verrouillée par défaut.
2. Une fois déverrouillé, l'option "Ajouter un utilisateur" devient disponible. Cliquez dessus pour créer un nouvel utilisateur.

3. Pour créer le nouvel utilisateur, entrez son nom complet et son nom d'utilisateur. Choisissez "Définir un mot de passe maintenant" et choisissez son mot de passe. Assurez-vous également que le type de compte est réglé sur "Administrateur", puis cliquez sur "Ajouter" pour finaliser la création.

4. Le nouveau compte utilisateur créé devrait alors apparaître comme dans l'illustration ci-dessous.

Gestion des Permissions de Fichiers et de Répertoires sous Linux
Les permissions définissent les règles qui régissent l'accès aux fichiers et répertoires, ainsi que les actions possibles pour chaque catégorie d'utilisateur. Linux distingue trois types de permissions principales :
- Lecture (r) – Autorise un utilisateur à consulter le contenu d'un fichier et à lister le contenu d'un répertoire.
- Écriture (w) – Permet à un utilisateur de modifier le contenu d'un fichier. Dans le cas d'un répertoire, cette permission autorise la modification du répertoire en y ajoutant, supprimant, renommant ou déplaçant des fichiers ou des sous-répertoires. Il est important de noter que la permission d'écriture sur un répertoire n'est effective que si l'utilisateur possède également la permission d'exécution.
- Exécution (x) – Cette permission indique qu'un fichier peut être exécuté, comme un programme. Dans le cas d'un répertoire, elle autorise un utilisateur à y entrer, à l'aide de la commande "cd".
Ces permissions (lecture, écriture et exécution) sont attribuées séparément à chacune des trois catégories d'utilisateurs.
Vous pouvez également consulter des informations sur la suppression de fichiers et de répertoires sous Linux.
Affichage Détaillé des Fichiers et Répertoires
Pour afficher le contenu d'un répertoire sous Linux, la commande "ls" est couramment utilisée. Cependant, cette commande ne donne qu'une liste succincte des fichiers et répertoires disponibles.
Pour obtenir plus de détails, comme les permissions et les propriétaires, il faut utiliser la commande "ls" avec l'option "-l". Cette commande affiche une liste détaillée des fichiers et répertoires, incluant leurs permissions, leurs propriétaires et les groupes associés.

Par défaut, sous Ubuntu, si aucun groupe spécifique n'a été créé, le nom du groupe est identique au nom du propriétaire du fichier.
Pour créer un nouveau groupe, la commande "addgroup" est utilisée. Par exemple, pour créer un groupe appelé "editeurs", exécutez la commande suivante et saisissez un mot de passe lorsque cela vous sera demandé :
sudo addgroup editeurs
La commande "sudo" permet d'exécuter des commandes avec les privilèges de l'utilisateur root, qui possède les droits d'administration complets sur le système et peut effectuer des modifications affectant tous les utilisateurs.
Pour ajouter des utilisateurs à un groupe, la syntaxe suivante est employée :
adduser <utilisateur> <groupe>
Par exemple, pour ajouter "Belmont" et "Madici" au groupe "editeurs", les commandes suivantes seront utilisées :
sudo adduser belmont editeurs
sudo adduser madici editeurs
Pour consulter les groupes auxquels un utilisateur appartient, utilisez :
groups <nom_utilisateur>
Le résultat de ces commandes sera semblable à l'affichage ci-dessous :

Examinons maintenant les attributs de fichier, qui indiquent le type de fichier et ses permissions.
Les Attributs des Fichiers Sous Linux

Sous Linux, les attributs de fichier sont représentés par une chaîne de dix caractères. Le premier caractère indique le type du fichier. Les caractères de type les plus courants sont :
- "d" : représente un répertoire.
- "-" : indique un fichier standard, tel qu'un fichier texte.
- "c" : désigne un fichier spécial de type caractère.
- "l" : symbolise un lien symbolique.
- "b" : représente un fichier spécial de type bloc.
Les neuf caractères suivants sont utilisés pour afficher les permissions du propriétaire, du groupe et des autres utilisateurs. Ils sont divisés en trois groupes de trois caractères. Le premier groupe indique les permissions du propriétaire, le second celles du groupe et le troisième celles des autres utilisateurs.

Les permissions sont indiquées en commençant par la permission de lecture ("r"), puis d'écriture ("w") et enfin d'exécution ("x"). L'absence d'une permission est indiquée par le caractère "-". Par exemple, la permission "rw-" pour le groupe signifie qu'il a les permissions de lecture et d'écriture, mais pas celle d'exécution, pour le répertoire ("d") dans ce cas.
Modification des Permissions par Notation Symbolique
Pour modifier les permissions sur un fichier ou un répertoire, on utilise la commande "chmod", en précisant à qui les modifications s'appliquent.
On peut cibler le propriétaire du fichier, représenté par "u" (utilisateur), le groupe propriétaire par "g", ou les autres utilisateurs par "o". On peut également cibler toutes les catégories en utilisant "a", pour tous.
Ensuite, on spécifie la modification à apporter. Pour ajouter une permission, on utilise le symbole "+", et pour en supprimer une, le symbole "-". Enfin, on indique les permissions à modifier en utilisant "r", "w" ou "x" pour respectivement lecture, écriture et exécution.
Pour illustrer cela, créons un répertoire appelé "livres" à l'aide de la commande ci-dessous :
mkdir livres
Puis entrons dans le répertoire à l'aide de la commande "cd" :
cd livres
Créons ensuite un fichier appelé "ListeDeLecture.txt" :
touch ListeDeLecture.txt
Pour afficher le contenu du répertoire "livres" en mode détaillé, exécutons :
ls -l
Le résultat sera semblable à ceci :

Le fichier créé est un fichier standard, indiqué par le "-" initial. Le propriétaire et le groupe ont des permissions de lecture et d'écriture, tandis que les autres utilisateurs n'ont que la permission de lecture. Pour accorder aux autres utilisateurs la permission d'écriture sur ce fichier, exécutons :
chmod o+w ListeDeLecture.txt
Pour vérifier si les permissions des autres utilisateurs ont bien été modifiées, exécutons :
ls -l
Le résultat devrait être :

On peut observer que la permission des autres utilisateurs a changé de "r--" à "rw-", signifiant qu'ils ont maintenant la permission d'écriture.
Pour ajouter la permission d'exécution au propriétaire du fichier, exécutons :
chmod u+x ListeDeLecture.txt
Pour supprimer la permission d'écriture du groupe propriétaire, exécutons :
chmod g-w ListeDeLecture.txt
Pour retirer la permission de lecture à tous les utilisateurs, afin que personne ne puisse voir le contenu du fichier, exécutons :
chmod a-r ListeDeLecture.txt
Pour rétablir la permission de lecture au propriétaire du fichier, exécutons :
chmod u+r ListeDeLecture.txt
Pour accorder les permissions d'écriture et d'exécution au groupe propriétaire du fichier, exécutons :
chmod g+wx ListeDeLecture.txt
Modification des Permissions par Notation Octale
Sous Linux, chaque permission a deux états possibles : activée ou désactivée. On peut ainsi représenter ces permissions par des chiffres binaires (1 pour activé, 0 pour désactivé). Par exemple, "rw-" peut être représenté par "110" en binaire.
Par conséquent, trois chiffres binaires suffisent pour représenter l'ensemble des permissions d'une catégorie d'utilisateur. Ainsi, les permissions du propriétaire, du groupe et des autres "rwxrwr--" peuvent être représentées par "111110100" en binaire.
Cependant, pour éviter d'utiliser des chaînes binaires trop longues et complexes, une meilleure approche est d'utiliser la notation octale.
Les nombres octaux sont en base 8, avec huit valeurs possibles. Chaque nombre octal correspond à un groupe de trois chiffres binaires.
Ainsi, une permission comme "rw-" peut être représentée par "110" en binaire, ce qui correspond à "6" en octal. On peut utiliser ces nombres pour représenter les permissions de lecture, d'écriture et d'exécution du propriétaire, du groupe et des autres, comme dans le tableau suivant :

Au lieu d'utiliser de longues chaînes binaires, il est plus pratique d'utiliser la notation octale pour définir les permissions. L'avantage de cette méthode est qu'elle permet de définir les permissions de toutes les catégories d'utilisateurs en une seule fois, contrairement à la notation symbolique qui cible les permissions d'une catégorie à la fois.
Toutefois, la notation octale demande un peu d'apprentissage et de pratique pour maîtriser la conversion des permissions. N'hésitez pas à vous référer au tableau ci-dessus lorsque vous utilisez cette notation. Voici quelques exemples d'utilisation de la notation octale pour modifier des permissions.
Pour accorder les permissions de lecture, d'écriture et d'exécution à tous les utilisateurs sur le fichier "ListeDeLecture.txt", exécutons :

chmod 777 ListeDeLecture.txt
Pour vérifier que les permissions ont bien été modifiées, exécutons :
ls -l
Le résultat sera :
total 0 -rwxrwxrwx 1 madici madici 0 Sep 6 05:45 ListeDeLecture.txt

On observe que le propriétaire, le groupe et les autres utilisateurs ont maintenant les permissions de lecture, d'écriture et d'exécution sur le fichier "ListeDeLecture.txt".
Pour supprimer les permissions d'écriture au groupe propriétaire et aux autres utilisateurs, exécutons :
chmod 755 ListeDeLecture.txt
Pour supprimer les permissions d'exécution du propriétaire et des autres utilisateurs, exécutons :
chmod 654 ListeDeLecture.txt
Permissions Spéciales Sous Linux
En plus des permissions standards de lecture, d'écriture et d'exécution, Linux propose trois permissions spéciales qui offrent un contrôle d'accès plus avancé. Ces permissions permettent à des utilisateurs disposant de moins de privilèges d'exécuter des fichiers ou des commandes avec les privilèges du propriétaire ou du groupe.
Ces permissions spéciales sont :
- Set User ID (SUID) – La permission SUID permet à un utilisateur d'exécuter un fichier ou un programme avec les privilèges du propriétaire du fichier, et non ses propres privilèges. C'est utile lorsque des utilisateurs standard doivent effectuer des tâches nécessitant des droits élevés.
- Set Group ID (SGID) – La permission SGID permet à un utilisateur d'exécuter un fichier avec les permissions du groupe propriétaire du fichier, plutôt que celles de son groupe habituel.
- Sticky Bit – Le sticky bit est une permission généralement appliquée aux répertoires. Elle permet de s'assurer que seuls le propriétaire du répertoire, le propriétaire d'un fichier spécifique dans ce répertoire, ou l'utilisateur root peuvent supprimer ce fichier.
Ces trois permissions spéciales peuvent être utilisées conjointement avec les permissions standard.
Conclusion
Les permissions sont un concept important sous Linux, même si votre ordinateur n'a qu'un seul utilisateur. Comprendre comment elles fonctionnent est essentiel pour garantir la sécurité, la confidentialité et le contrôle des données de votre système Linux. Il est donc vivement conseillé de pratiquer les notions abordées dans cet article pour bien maîtriser le système de permissions de Linux.
Vous pouvez également découvrir comment utiliser les commandes Linux sous Windows.