Dans cet article, nous explorerons l'importance d'une bonne organisation des utilisateurs Linux. Nous décrirons les droits d'accès, en commençant par la création et la configuration des utilisateurs, et en terminant par l'octroi de l'accès à des fichiers et dossiers spécifiques. Nous aborderons également quelques outils de sécurité importants, tels que sudo et SELinux, qui contribuent à protéger le système contre les activités indésirables.
L'importance de la gestion des utilisateurs et des droits d'accès sous Linux
Dans l'univers Linux, la gestion des utilisateurs et des droits d'accès est primordiale. Imaginez Linux comme un grand appartement où chaque utilisateur est un locataire et chaque fichier une pièce. La gestion des utilisateurs revient à attribuer à chaque locataire sa clé unique, tandis que les droits d'accès correspondent aux actions qu'il peut effectuer dans sa pièce.
Lors de la création d'un compte utilisateur, un nom et un identifiant unique ( UID ) lui sont attribués, comparables à une clé personnelle pour son appartement. L'utilisateur appartient également à un groupe , qui le relie aux autres locataires. Ce groupe fonctionne comme un club où les membres partagent des privilèges communs.
Les droits d'accès aux fichiers sont répartis en trois catégories : propriétaire ( utilisateur ), groupe et autres . Chaque utilisateur dispose de droits spécifiques de lecture, d'écriture et d'exécution pour chaque catégorie. Par exemple, le propriétaire du fichier peut avoir les droits de lecture et d'écriture, le groupe uniquement les droits de lecture, et les autres aucun droit.
Les politiques de sécurité telles que sudo et SELinux , utilisées dans les systèmes Linux, méritent une attention particulière . Sudo est une commande spéciale qui permet aux utilisateurs ordinaires d'utiliser temporairement les droits de superutilisateur (root) pour effectuer des tâches spécifiques normalement réservées aux administrateurs. Cela contribue à prévenir les erreurs accidentelles ou l'utilisation abusive des droits de superutilisateur. Lors de l'utilisation de sudo , l'utilisateur doit généralement saisir son mot de passe pour confirmer son identité. Il peut ensuite exécuter des commandes avec les droits de superutilisateur (root) conformément aux règles définies dans le fichier sudoers .
SELinux est une couche de sécurité supplémentaire pour le système d'exploitation Linux. Il surveille les programmes et les fichiers accessibles au système et en limite l'accès afin de prévenir les intrusions et les attaques. Le serveur est ainsi plus sécurisé en empêchant les tentatives de piratage et les actions malveillantes.
Création et gestion des utilisateurs
Comment créer un utilisateur sous Linux
Sous Linux, les utilisateurs sont généralement créés avec la commande useradd . Par exemple, pour créer un utilisateur nommé « nom_utilisateur », vous saisirez :
useradd username
Comment définir un mot de passe utilisateur Linux
Après la création d'un utilisateur, son compte n'est pas protégé par un mot de passe. Pour définir un mot de passe pour un nouvel utilisateur, utilisez la commande passwd :
passwd username
Où nom d'utilisateur est le nom de l'utilisateur pour lequel le mot de passe est défini.
Comment afficher une liste d'utilisateurs sous Linux
Pour afficher la liste des utilisateurs sous Linux en utilisant une seule commande dans le terminal, vous pouvez utiliser la commande cut :
cut -d: -f1 /etc/passwd
Cette commande lit le contenu du fichier /etc/passwd , qui contient des informations sur tous les utilisateurs.
Pour obtenir des informations sur un utilisateur spécifique, vous pouvez utiliser la commande :
id username
Ceci affichera l' UID , le GID et les groupes de l'utilisateur.
Suppression d'un utilisateur Linux
Pour supprimer un utilisateur, utilisez la commande userdel :
userdel username
Toutefois, cette commande ne supprime pas les fichiers du répertoire personnel de l'utilisateur. Pour les supprimer, vous pouvez utiliser l' option -r :
userdel -r username
Cela supprimera le nom d'utilisateur de l'utilisateur ainsi que son répertoire personnel et tous les fichiers qu'il contient.
Modification d'un utilisateur Linux
Pour modifier les informations relatives à un utilisateur, utilisez la commande usermod . Cet outil utilise la syntaxe suivante :
usermod argument user
Une liste complète des arguments possibles est affichée dans l'aide de l'utilitaire :
Par exemple, pour modifier le répertoire personnel d'un utilisateur, vous utiliseriez la commande :
usermod -d /new/path/to/directory username
Création et gestion de groupes d'utilisateurs sous Linux
Sous Linux, les groupes d'utilisateurs permettent aux administrateurs de regrouper des utilisateurs disposant de droits d'accès similaires. Cela simplifie la gestion des droits d'accès et renforce la sécurité du système en permettant de définir les droits au niveau du groupe, plutôt que pour chaque utilisateur individuellement. Prenons l'exemple du groupe de développeurs avec l'utilisateur admin.
Comment créer un groupe d'utilisateurs sous Linux
Pour créer un nouveau groupe, utilisez la commande groupadd avec le nom du nouveau groupe :
sudo groupadd group_name
Dans notre exemple, la commande ressemblerait à ceci :
sudo groupadd developers
Comment supprimer un groupe d'utilisateurs sous Linux
Pour supprimer un groupe, utilisez la commande groupdel :
sudo groupdel group_name
Ainsi, la commande :
sudo groupdel developers
Je vais supprimer le groupe nommé développeurs.
Ajout d'utilisateurs à un groupe
Pour ajouter un utilisateur à un groupe spécifique, utilisez la commande usermod :
sudo usermod -aG group_name user_name
Par exemple :
sudo usermod -aG developers admin
Cette commande ajoutera l'utilisateur nommé admin au groupe des développeurs .
Supprimer des utilisateurs d'un groupe
Pour retirer un utilisateur d'un groupe, utilisez la commande deluser :
sudo deluser user_name group_name
Commande permettant de supprimer l'utilisateur admin du groupe des développeurs :
sudo deluser admin developers
Affichage des listes de groupes sous Linux
Pour afficher la liste de tous les groupes du système, utilisez la commande cat avec le fichier /etc/group :
cat /etc/group
Cette commande affichera une liste de tous les groupes du système.
Vérification de l'appartenance au groupe d'utilisateurs
Après avoir effectué des actions, vous pouvez vérifier à quels groupes appartient un utilisateur à l'aide de la commande groups :
groups user_name
Nous avons ainsi exploré les bases de la gestion des groupes d'utilisateurs sous Linux. Passons maintenant à l'étape suivante : l'attribution des droits d'accès aux fichiers et répertoires. Ce processus permet de déterminer les actions que les utilisateurs ou les groupes peuvent effectuer sur des fichiers et répertoires spécifiques, garantissant ainsi une gestion efficace de la sécurité et de l'accès aux ressources système.
Attribution de droits d'accès aux fichiers et aux répertoires
Représentation symbolique des droits d'accès
Comme nous l'avons déjà vu, il existe trois catégories d'utilisateurs sous Linux : propriétaire ( utilisateur ), groupe et autres . Chacune d'elles peut disposer de certains niveaux d'accès aux fichiers et répertoires.
- Lire (Read - r) : Permet de visualiser le contenu d'un fichier ou d'un répertoire.
- Écriture (Write - w) : permet de modifier un fichier ou d'en créer un nouveau dans le répertoire. Pour un répertoire, cela permet également d'en supprimer des fichiers.
- Exécuter (Execute - x) : Permet d'exécuter le fichier (s'il s'agit d'un fichier exécutable) ou d'entrer dans le répertoire (s'il s'agit d'un répertoire).
Dans les systèmes Linux, les droits d'accès sont représentés par une chaîne de 10 caractères. Le premier caractère indique le type de fichier (fichier standard, répertoire, etc.), et les neuf autres sont trois groupes de trois caractères pour chaque groupe d'utilisateurs. Pour mieux comprendre, prenons un exemple.
Les droits d'accès -rwxr-xr-- signifient :
- Le premier caractère (-) indique le type de fichier (dans ce cas, un fichier normal).
- Trois caractères pour le propriétaire (rwx) indiquent que le propriétaire dispose des droits de lecture, d'écriture et d'exécution.
- Trois caractères pour le groupe (rx) indiquent que les membres du groupe ont uniquement des droits de lecture et d'exécution.
- Trois caractères pour les autres (r--) signifient que les autres utilisateurs peuvent uniquement lire le fichier.
Les droits d'accès sont définis à l'aide de la commande chmod , et sa syntaxe est la suivante :
chmod [options] mode file(s)
Où? :
- [options] - paramètres supplémentaires, tels que -R pour modifier de manière récursive les droits d'accès dans un répertoire et ses sous-répertoires.
- mode – une chaîne spéciale spécifiant quels droits d'accès sont modifiés et pour qui. Le mode peut être spécifié par des symboles (r, w, x) et des bits (0 ou 1). Des valeurs numériques peuvent également être utilisées (nous en parlerons plus tard).
- fichier(s) - fichiers ou répertoires auxquels les modifications sont appliquées.
Cet utilitaire est un outil assez puissant, nous ne regarderons donc que quelques commandes de base à titre d'exemple.
Modifiez les droits d'accès à un fichier afin que le propriétaire ait des droits de lecture et d'écriture, que le groupe ait uniquement des droits de lecture et que les autres utilisateurs n'aient aucun droit :
chmod u=rw,g=r,o= filename
Définissez les droits d'accès pour que tous les utilisateurs puissent lire et écrire dans un fichier :
chmod a+rw filename
Modifier de manière récursive les droits d'accès pour tous les fichiers et sous-répertoires d'un répertoire :
chmod -R u+rwx directory
Représentation numérique des droits d'accès
Dans la représentation numérique, chaque catégorie d'utilisateur (propriétaire, groupe, autres) possède son numéro, et la combinaison de ces numéros définit les droits d'accès finaux. Comme pour la représentation symbolique, chacun des trois droits possède sa valeur, mais en numérique :
- Lire (read) - valeur 4
- Écriture (write) - valeur 2
- Exécuter (execute) - valeur 1
Les valeurs numériques sont également utilisées pour déterminer le type d'utilisateur :
- Propriétaire du fichier (utilisateur) - le premier chiffre
- Groupe du propriétaire (groupe) - le deuxième chiffre
- Autres utilisateurs (autres) - le troisième chiffre
Ainsi, la représentation numérique complète des droits d'accès aux fichiers se compose de trois chiffres, chacun représentant la somme des valeurs des droits d'une catégorie d'utilisateur donnée. Cette méthode est plus pratique que l'utilisation de dix caractères dans une représentation symbolique. Dans ce cas, la gestion se présente comme suit :
chmod XYZ file
où X , Y et Z sont des nombres représentant respectivement les droits d'accès du propriétaire, du groupe et des autres utilisateurs.
Par exemple, pour accorder au propriétaire des droits d'accès complets (lecture, écriture et exécution) et au groupe et aux autres utilisateurs uniquement des droits de lecture et d'exécution, vous pouvez utiliser la commande :
chmod 755 file
Considérons d’autres exemples :
chmod 700 file
Seul le propriétaire dispose des droits de lecture, d'écriture et d'exécution, tandis que le groupe et les autres utilisateurs n'ont aucun droit d'accès.
chmod 644 file
Le propriétaire a des droits de lecture et d'écriture, tandis que le groupe et les autres utilisateurs n'ont que des droits de lecture.
chmod 751 file
Le propriétaire dispose de tous les droits, le groupe dispose des droits de lecture et d'exécution, et les autres utilisateurs disposent uniquement des droits d'exécution.
Comme mentionné précédemment, l'outil offre des fonctionnalités très complètes. Dans certains cas, les options disponibles dans la section « Aide » ne suffisent pas :
Notez la dernière ligne. Cette commande ouvre une documentation plus détaillée sur l'outil. Vous pouvez également consulter la page Wikipédia officielle de l'utilitaire , où vous trouverez des informations détaillées sur Chmod.
Conclusion
Les utilisateurs Linux et leur gestion sont essentiels à la sécurité et au bon fonctionnement du système d'exploitation. Dans cet article, nous avons souligné l'importance d'une gestion efficace des utilisateurs et des droits d'accès sous Linux, en abordant la création et la gestion des utilisateurs, la gestion des groupes d'utilisateurs et l'attribution des droits d'accès aux fichiers et aux répertoires.