Groupes d'utilisateurs et permissions de fichiers sous Linux

LinuxBeginner
Pratiquer maintenant

Introduction

Linux est un système d'exploitation multi-utilisateurs. Cela signifie que plusieurs utilisateurs peuvent utiliser le même ordinateur Linux simultanément, chacun disposant de son propre espace privé et de ses propres fichiers, tout en partageant certaines ressources système. Ce laboratoire vous présentera les bases de la gestion des utilisateurs et des permissions de fichiers sous Linux, des concepts cruciaux pour l'administration système et la sécurité.

Vous aborderez ces notions dans un ordre logique : identifier les utilisateurs, créer un utilisateur, gérer les groupes, puis appliquer des changements de propriété et de permissions sur les fichiers. Si c'est votre première expérience avec les commandes d'administration Linux, exécutez chaque commande une par une et comparez votre résultat avec les exemples avant de continuer.

Afficher les informations de l'utilisateur actuel

Sous Linux, chaque utilisateur possède un nom d'utilisateur unique. Commençons par identifier l'utilisateur sous lequel nous sommes actuellement connectés.

Ouvrez le terminal et saisissez la commande suivante :

whoami

La commande whoami est un outil simple qui affiche le nom de l'utilisateur actuel.

Vous devriez voir un résultat similaire à celui-ci :

labex:project/ $ whoami
labex

Cela indique que vous êtes actuellement connecté en tant qu'utilisateur "labex".

Créer un nouvel utilisateur

Maintenant, créons un nouvel utilisateur. Sous Linux, la création de nouveaux utilisateurs nécessite des privilèges administratifs. Nous utiliserons la commande sudo pour obtenir ces privilèges.

sudo signifie "Superuser Do". Il permet aux utilisateurs réguliers d'exécuter des commandes en tant que superutilisateur (ou utilisateur root).

Avant de créer un nouvel utilisateur, discutons du concept de groupes principaux. Sous Linux, chaque utilisateur appartient à un groupe principal et peut appartenir à plusieurs groupes secondaires. Le groupe principal est généralement utilisé comme propriétaire de groupe pour les fichiers créés par l'utilisateur.

Lorsque vous créez un nouvel utilisateur avec adduser, le système crée automatiquement un groupe principal pour cet utilisateur portant le même nom que le nom d'utilisateur. C'est ce qu'on appelle le schéma UPG (User Private Group).

Saisissez la commande suivante pour créer un nouvel utilisateur nommé "jack" :

sudo adduser jack

Cette commande va :

  1. Créer un nouvel utilisateur nommé "jack"
  2. Créer un nouveau groupe nommé "jack" (le groupe principal)
  3. Ajouter l'utilisateur "jack" au groupe "jack" en tant que groupe principal
  4. Créer un répertoire personnel pour jack dans /home/jack

Vous serez invité à définir un mot de passe pour jack et à fournir quelques informations supplémentaires. Vous pouvez définir un mot de passe simple (comme "password") et appuyer sur Entrée pour utiliser les valeurs par défaut pour les autres informations.

Remarque : Lors de la saisie du mot de passe, aucun caractère ne s'affichera à l'écran ; c'est un comportement normal pour des raisons de sécurité. Tapez simplement votre mot de passe et appuyez sur Entrée.

Après avoir créé l'utilisateur, vérifions qu'un répertoire personnel a bien été créé pour jack et vérifions son groupe principal :

ls /home
id jack

La commande id vous montrera l'identifiant utilisateur (UID) de jack, l'identifiant de son groupe principal (GID) et tous ses groupes secondaires.

Explorer les groupes d'utilisateurs

Sous Linux, les groupes d'utilisateurs sont un moyen d'organiser plusieurs utilisateurs pour la gestion des permissions. Chaque utilisateur a un groupe principal et peut appartenir à plusieurs groupes secondaires. Explorons les groupes auxquels notre utilisateur actuel appartient :

id labex

Vous devriez voir un résultat similaire à :

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Cela montre que :

  • L'utilisateur labex a un identifiant utilisateur (UID) de 5000
  • Le groupe principal de labex est également nommé labex avec un identifiant de groupe (GID) de 5000
  • labex appartient à plusieurs groupes secondaires, notamment sudo, ssl-cert et public

Maintenant, affichons tous les groupes présents sur le système :

cat /etc/group | sort

La commande cat affiche le contenu d'un fichier, /etc/group est l'endroit où les informations sur les groupes sont stockées, et | sort trie le résultat par ordre alphabétique.

Pour voir uniquement les groupes liés à labex, utilisez :

grep "labex" /etc/group

grep est un outil de recherche puissant. Cette commande recherche les lignes contenant "labex" dans le fichier des groupes.

Créer un nouveau groupe et y ajouter un utilisateur

Créons un nouveau groupe appelé "developers" et ajoutons notre nouvel utilisateur "jack" à ce groupe :

Tout d'abord, créez le nouveau groupe :

sudo groupadd developers

Maintenant, ajoutez jack au groupe developers :

sudo usermod -aG developers jack

La commande usermod modifie les comptes utilisateurs. L'option -aG ajoute l'utilisateur à un groupe supplémentaire.

Pour vérifier que jack est désormais membre du groupe developers, utilisez :

groups jack

Vous devriez voir "developers" listé parmi les groupes de jack.

Ajouter un utilisateur au groupe sudo

Maintenant que nous avons créé l'utilisateur jack, donnons-lui des privilèges sudo en l'ajoutant au groupe sudo. Mais d'abord, comprenons pourquoi c'est important :

Ajouter un utilisateur au groupe sudo lui permet d'exécuter des commandes avec les privilèges de superutilisateur ou root. C'est utile pour plusieurs raisons :

  1. Sécurité : Cela permet à l'utilisateur d'effectuer des tâches administratives sans se connecter en tant qu'utilisateur root, ce qui est généralement considéré comme un risque de sécurité.
  2. Responsabilité : Lorsque les utilisateurs utilisent sudo, leurs actions sont enregistrées, fournissant une piste d'audit des actions administratives.
  3. Commodité : Cela élimine le besoin de basculer vers le compte utilisateur root pour des tâches administratives occasionnelles.
  4. Contrôle granulaire : La configuration de sudo peut être personnalisée pour permettre à des utilisateurs spécifiques d'exécuter uniquement certaines commandes avec des privilèges élevés.

Pour ajouter jack au groupe sudo, utilisez cette commande :

sudo usermod -aG sudo jack

Cette commande utilise usermod pour modifier le compte utilisateur. L'option -aG signifie "ajouter au groupe" (append to group), elle ajoute donc jack au groupe sudo sans le supprimer des autres groupes.

Après avoir ajouté jack au groupe sudo, vous pouvez vérifier son appartenance au groupe avec :

groups jack

Vous devriez voir sudo listé parmi les groupes de jack.

En ajoutant jack au groupe sudo, nous lui avons donné la capacité d'effectuer des tâches administratives sur le système. Cependant, il est important de se rappeler qu'un grand pouvoir implique de grandes responsabilités. Les utilisateurs disposant de privilèges sudo doivent être dignes de confiance et comprendre les implications de leurs actions, car ils peuvent potentiellement affecter l'ensemble du système.

Comprendre et manipuler les permissions et la propriété des fichiers

Sous Linux, les permissions et la propriété des fichiers sont cruciales pour la sécurité du système. Explorons ces concepts et apprenons à les manipuler.

  1. Tout d'abord, examinons les permissions actuelles dans le répertoire /home :
ls -l /home

Remarque : Dans ls -l, le deuxième caractère est une lettre minuscule l (L), et non le chiffre 1.

Vous verrez un résultat similaire à :

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Analysons ce que cela signifie :

  • Le premier caractère indique le type de fichier (d pour répertoire, - pour fichier régulier)
  • Les 9 caractères suivants représentent les permissions pour le propriétaire, le groupe et les autres (dans cet ordre)
  • r signifie permission de lecture, w permission d'écriture, et x permission d'exécution
  • Le nom d'utilisateur après ces caractères est le propriétaire du fichier, suivi du groupe propriétaire
  1. Maintenant, créons un nouveau fichier et changeons sa propriété :
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

La commande touch crée un fichier vide. Initialement, le fichier appartiendra à labex. Nous utilisons ensuite chown pour changer la propriété au profit de jack, tant pour l'utilisateur que pour le groupe.

Pourquoi changer la propriété ? Sous Linux, les propriétaires de fichiers ont des privilèges spéciaux sur leurs fichiers. En changeant la propriété, nous donnons à jack le contrôle total sur ce fichier.

  1. Enfin, modifions les permissions du fichier :
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

La commande chmod modifie les permissions du fichier. Le nombre 750 est un raccourci pour définir les permissions :

  • 7 (propriétaire) : Lecture (4) + Écriture (2) + Exécution (1) = 7
  • 5 (groupe) : Lecture (4) + Exécution (1) = 5
  • 0 (autres) : Aucune permission

Cet ensemble de permissions signifie :

  • Le propriétaire (jack) peut lire, écrire et exécuter le fichier
  • Les membres du groupe jack peuvent lire et exécuter le fichier
  • Les autres n'ont aucune permission sur le fichier

Pourquoi définir ces permissions ? Il s'agit d'un ensemble de permissions courant qui permet au propriétaire un accès complet, donne au groupe un accès limité et restreint l'accès à tous les autres. C'est un équilibre entre utilisabilité et sécurité.

Comprendre les permissions et la propriété des fichiers est crucial sous Linux. Cela vous permet de contrôler qui peut lire, modifier ou exécuter des fichiers, ce qui est fondamental pour la sécurité du système et la confidentialité des utilisateurs. Au fur et à mesure que vous travaillerez avec Linux, vous utiliserez fréquemment ces commandes pour gérer l'accès aux fichiers et aux répertoires.

Résumé

Félicitations ! Vous avez terminé le laboratoire sur les groupes d'utilisateurs et les permissions de fichiers sous Linux. Vous avez appris à :

  1. Afficher les informations utilisateur
  2. Créer de nouveaux utilisateurs et comprendre les groupes principaux
  3. Explorer et modifier les groupes d'utilisateurs
  4. Créer de nouveaux groupes et y ajouter des utilisateurs
  5. Accorder des privilèges sudo aux utilisateurs
  6. Afficher et comprendre les permissions de fichiers
  7. Changer la propriété des fichiers
  8. Modifier les permissions des fichiers

Ces compétences sont fondamentales pour gérer les utilisateurs et sécuriser les fichiers dans un environnement Linux. En poursuivant votre apprentissage de Linux, vous constaterez que ces concepts sont essentiels pour l'administration système et la sécurité.