Retour au cours

utilisateurs et groupes : gestion des identités

Objectifs

  • Comprendre la différence entre un utilisateur et un groupe.
  • Savoir qui vous êtes et à quels groupes vous appartenez avec whoami et id.
  • Lister les utilisateurs actuellement connectés au système.
  • Comprendre le rôle des fichiers /etc/passwd et /etc/group.

Utilisateurs

Sous Linux, tout est lié à un propriétaire. Chaque fichier, chaque processus qui s’exécute appartient à un utilisateur. Un compte utilisateur définit une identité sur le système.

Chaque utilisateur possède :

  • Un nom d’utilisateur (login name).
  • Un User ID (UID), un numéro unique qui identifie l’utilisateur pour le système.
  • Un groupe principal.
  • Un dossier personnel (généralement dans /home/nom_utilisateur).
  • Un shell de connexion (généralement /bin/bash).

L’utilisateur root

L’utilisateur root est spécial. C’est l’super-administrateur du système. Il a l’UID 0 et a le droit de tout faire : lire n’importe quel fichier, arrêter n’importe quel processus, etc. Son pouvoir est immense, ce qui le rend dangereux à utiliser pour des tâches quotidiennes.

Groupes

Un groupe est une collection d’utilisateurs. Le but principal des groupes est de simplifier la gestion des permissions. Au lieu de donner des droits d’accès à un fichier à 10 utilisateurs individuellement, on peut les mettre tous dans un groupe dev et donner les droits d’accès à ce groupe.

Un utilisateur peut appartenir à plusieurs groupes simultanément.

Commandes d’identité

  • whoami : Affiche simplement votre nom d’utilisateur actuel.
    whoami
    # alice
  • id : Fournit des informations détaillées sur votre identité.
    id
    # uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo),100(users)
    Cela nous apprend que l’UID d’Alice est 1001, son groupe principal est aussi alice (une pratique courante), et qu’elle fait également partie des groupes sudo (elle a le droit d’utiliser sudo) et users.

Voir qui est connecté

  • who : Affiche une liste simple des utilisateurs actuellement connectés, sur quel terminal, et depuis quand.
  • w : Fait la même chose que who, mais donne plus d’informations, notamment ce que chaque utilisateur est en train de faire (JCPU, PCPU, WHAT).

Les fichiers de la vérité

Les informations sur les utilisateurs et les groupes sont stockées dans des fichiers texte simples.

  • /etc/passwd : La base de données des utilisateurs. Chaque ligne représente un utilisateur et contient 7 champs séparés par des deux-points (:), dont le nom d’utilisateur, l’UID, le GID principal, le chemin du dossier personnel et le shell.

    Note : Malgré son nom, ce fichier ne contient plus les mots de passe. Ils sont stockés de manière chiffrée dans /etc/shadow, un fichier lisible uniquement par root.

  • /etc/group : La base de données des groupes, qui liste les groupes et les utilisateurs qui en sont membres.

Vous pouvez inspecter ces fichiers avec less ou cat pour voir tous les utilisateurs (y compris les utilisateurs système) de votre machine.

Bonnes pratiques

  • Le principe du moindre privilège : N’utilisez pas root pour vos tâches de tous les jours. Connectez-vous avec votre utilisateur normal et utilisez la commande sudo lorsque vous avez besoin d’élever temporairement vos privilèges pour une tâche administrative.
  • Utilisez des groupes pour gérer les permissions d’un projet partagé. C’est plus propre et plus facile à maintenir.

Exercices

  1. Votre identité :

    • Ouvrez un terminal et exécutez id.
    • Repérez votre UID, votre GID principal et la liste des groupes auxquels vous appartenez.
  2. Qui est là ?

    • Exécutez la commande w sur votre machine. Y a-t-il d’autres utilisateurs connectés ?
  3. Explorer /etc/passwd :

    • Utilisez less /etc/passwd pour parcourir la liste des utilisateurs. Vous verrez de nombreux utilisateurs “système” utilisés par des services, en plus de votre propre compte.
    • Utilisez la commande suivante pour trouver uniquement la ligne qui vous concerne : grep "$(whoami)" /etc/passwd.
  4. Explorer /etc/group :

    • Affichez le contenu de /etc/group.
    • Cherchez le groupe sudo (ou wheel sur certains systèmes). Votre nom d’utilisateur devrait apparaître sur cette ligne si vous avez le droit d’utiliser sudo.