Menu Fermer

Le fonctionnement des utilisateurs et groupes sur Linux

Linux comme tout système d’exploitation et OS permet de créer des utilisateurs afin de se connecter et utiliser votre PC.
Mais comment les informations des utilisateurs sont stockées dans Linux.
Comment en ajouter, supprimer, bref gérer les utilisateurs sur Linux.

Dans cet article donc vous trouverez toutes les informations sur le fonctionnement des utilisateurs sur Linux.

Le fonctionnement des utilisateurs et groupes sur Linux

Le fonctionnement des utilisateurs sur Linux en général

Comme sur tous les systèmes d’exploitation, les utilisateurs permettent de se connecter à ce dernier.
Vous pouvez grâce à cet utilisateur ouvrir une session graphique ou en SSH.
Il est aussi possible depuis un terminal de se connecter à un autre utilisateur.
Enfin ces utilisateurs possèdent des accès différents sur Linux.

L’utilisateur root ou superutilisateur

Sur Linux, l’utilisateur root est l’utilisateur administrateur.
Le nom root ne peut être modifié et existe sur toutes les distributions Linux.
Ce dernier est créé par défaut à l’installation de Linux.

Lorsque vous souhaitez effectuer une action administrateur, vous devez vous identifier avec cet utilisateur root.
Ci-dessous, on change d’utilisateur grâce à la commande su.

L'utilisateur root ou administrateur de Linux

Toutefois pour simplifier les choses, l’utilitaire sudo a vu le jour.
Cet utilitaire permet de désigner des utilisateurs administrateur en les faisant joindre groupe.
A partir de là, ces derniers vont pouvoir à partir de la commande sudo lancer des commandes administrateurs.
Des distributions comme Ubuntu ou Mint proposent par défaut l’utilisation de sudo.

On peut donc très bien créer un nouvel utilisateur puis lui donner les autorisations administrateurs à travers sudo.
En général, il suffit d’ajouter ce dernier dans un groupe dédié (adm, sudo).

Ci-dessous la configuration des utilisateurs en graphiques, pour pouvoir modifier celle-ci, il faut déverrouiller l’accès.

sudo permet de s'identifier en administrateur sur Linux

Le mot de passe de l’utilisateur est alors demandé pour passer en administrateur.
C’est un peu le même type de fonctionnement que le contrôle des comptes utilisateurs UAC de Windows.

sudo permet de s'identifier en administrateur sur Linux

Qu’est-ce qu’un groupe Linux

Dans Linux, un groupe est un ensemble d’utilisateurs qui partagent les mêmes privilèges et autorisations. Les groupes sont utilisés pour organiser et gérer l’accès aux ressources du système, telles que les fichiers, les répertoires et les processus. En affectant des utilisateurs à des groupes, vous pouvez leur accorder des autorisations spécifiques sans avoir à les accorder individuellement à chaque utilisateur. Cela permet de gagner du temps et de l’énergie, mais aussi d’améliorer la sécurité en garantissant que seuls les utilisateurs autorisés ont accès aux ressources sensibles.

Il existe deux types de groupes sous Linux : les groupes primaires et les groupes supplémentaires, comme expliqué dans ce guide :

  • Le groupe primaire d’un utilisateur est le groupe auquel il est automatiquement assigné lorsqu’il crée son compte. Le groupe primaire détermine les permissions par défaut des fichiers et des répertoires créés par l’utilisateur
  • Les groupes supplémentaires sont des groupes auxquels un utilisateur est ajouté après la création de son compte. Les groupes supplémentaires n’affectent pas les autorisations par défaut des fichiers et des répertoires, mais ils peuvent être utilisés pour accorder des autorisations supplémentaires aux utilisateurs
Afficher tous les groupes du système

La configuration des utilisateurs et groupes sur Linux

Sur Windows, les informations de la configuration sont généralement stockées dans le registre Windows.
Sur Linux, la configuration est stockée dans des fichiers et plus particulièrement dans le dossier de configuration /etc.
Les informations des utilisateurs sur Linux sont stockés dans trois fichiers /etc/ :

  • /etc/passwd décrit le nom et UID des utilisateurs Linux et leurs dossiers home
  • /etc/group contient les informations des groupes utilisateurs
  • /etc/shadow stocke les mots de passe des utilisateurs
  • /etc/gshadow contient les mots de passe des groupes utilisateurs Linux

/etc/passwd

Ces fichiers sont liés ente eux à travers les UID (identifiant unique) des utilisateurs Linux.
Chaque entrée dans le fichier est séparé par deux points.

/etc/passwd stocke la configuration utilisateur Linux

Voici un exemple de contenu du fichier /etc/passwd, on y trouve :

  • Le nom d’utilisateur
  • Son UID qui est utilisé par Linux pour travailler avec les utilisateurs. Ce dernier n’utilise pas les noms d’utilisateurs mais les UID. Ainsi par exemple c’est l’UID qui est appliqué aux systèmes de fichiers pour attribuer les autorisations sr les fichiers et dossiers lorsque vous utilisez la commande chown. Cet identifiant débute à 1000 pour les utilisateurs que vous ajoutez.
  • Le GUID (group UID) est l’identifiant du groupe de l’utilisateur Linux
  • Le shell : par exemple /bin/bash qui permet d’ouvrir une session. Avec /bin/nologin ou /bin/false, l’ouverture de session est impossible. En général, ce sont des utilisateurs systèmes.

La commande ID permet d’afficher les informations d’un utilisateur (UID, home, shell, …)

La commande ID permet d'afficher les informations d'un utilisateur (UID, home, shell, etc)

/etc/group

Le fichier /etc/group liste les groupes utilisateurs Linux.
Le nom puis son numéro de groupe est listé avec ensuite les utilisateurs qui font partie du groupe.

/etc/passwd stocke la configuration utilisateur Linux

Voici la structure d’une entrée /etc/group :

Par exemple ci-dessous, on peut voir que l’utilisateur tbd fait partie de plusieurs groupes adm, cdrom, sudo etc.
La commande groups le confirme puisqu’en fait elle liste le contenu du fichier /etc/group.

La commande groups pour lister les groupes d'un utilisateur Linux

/etc/shadow

Enfin le fichier /etc/shadow stocke les mots de passe utilisateur de manière haché.
Les numéros à la fin stockent le nombre de jours du dernier changement de mot de passe, le nombre de jours qui restent avant d’être changé, etc.

Le fichier /etc/shadow stocke les mots de passe utilisateur Linux

Voici la structure du fichier /etc/shadow :

Ces fichiers sont donc la cible d’attaque informatique afin de récupérer le contenu, notamment pour les serveurs.
A partir du fichier /etc/shadow il est possible de récupérer le mot de passe à partir d’attaque par Brute-force.

Les UID et GID dans les permissions de fichiers

Ce sont donc des identifiants uniques dans Linux qui identifie un utilisateur.
Ces derniers sont notamment appliqués aux dossiers afin de définir les permissions de fichiers.

Par exemple ci-dessous, le propriétaires des fichiers appartiennent pour la plupart à l’utilisateur malekalmorte.

Les UID et GID dans les permissions de fichiers

Pour appliquer ces permissions, on peut utiliser la commande chown :

chown malekalmorte.malekalmorte nomdufichier

ou on peut les définir avec l’UID et GID :

chown 1000.1000 nomdufichier

Dans la capture d’écran, on voit d’ailleurs que le fichier test.png appartient à un utilisateur avec l’UID et GID 1003.
Aucun nom n’apparaît car aucun utilisateur ne correspond à ces derniers.

Le shell (bash, dash, …)

L’utilisateur possède donc un dossier home définit dans /etc/passwd.
En général il se trouve dans /home bien que les utilisateurs systèmes ont souvent un autre emplacement.
Enfin il possède aussi un shell.
Pour les utilisateurs courants, il s’agit en général d’un programme de ligne de commandes comme bash, dash, etc.

Les shells suivantes correspondent à des utilisateurs systèmes :

  • /sbin/nologin
  • /bin/false

La commandes avec ces derniers n’est pas possible directement mais cela reste possible avec la commande su.
Les shells sont définis dans le fichier /etc/shells.

Dans le cas de bash, lorsque l’utilisateur s’identifie, il exécute la configuration générale /etc/bash.bashrc.
Celle-ci peut définir les couleurs du terminal, des alias, etc.

Mais l’utilisateur peut aussi personnaliser sa configuration à travers le fichier ~/.bashrc.
Cela lui permet de modifier les couleurs du terminal, créer ses propres alias ou modifier le PATH.

Ces fichiers permettent aussi d’exécuter des commandes.
Ainsi on peut exécuter une commande système par exemple augmenter le nombre de fichiers ouverts simultanément.

Quelles sont les commandes Linux pour gérer les utilisateurs

Voici les commandes Linux de bases pour gérer les utilisateurs et groupes.

CommandesActions
adduser ou useraddAjouter un utilisateur
chageAffiche les dates d’expirations d’un utilisateur Linux
chmodChanger les droits sur un fichier ou dossier
chownChanger le propriétaire
chfnModifier le nom complet et les informations associées à un utilisateur
chgrpChanger le groupe propriétaire
chpasswdMettre à jour des mots de passe par lot
deluser ou userdelSupprimer un utilisateur
getent Affiche les entrées des bases de données configurées dans le fichier /etc/nsswitch.conf
groupsRenvoyer la liste des goupes dont l’utilisateur fait partie
grpconvCrée gshadow à partir de group et d’un gshadow existant
grpunconvCrée group à partir de group et de gshadow, puis supprime gshadow
groupmodModifier la configuration d’un groupe utilisateur
idRenvoie les informationss UID – GID d’un utilisateur
loginDémarrer une session sur le système
passwdChanger le mot de passe d’un utilisateur Linux
pwckVérifier l’intégrité des fichiers de mots de passe
pwconvCrée shadow à partir de passwd et d’un shadow éventuellement existant.
pwunconvCrée passwd à partir de passwd et shadow, puis supprime shadow.
susu (switch user) est une commande qui permet de s’identifier
avec un autre utilisation ou passer une commande avec un autre utilisateur
sudoExécuter une commande avec un autre utilisateur
suloginsulogin est invoqué par init lorsque le système passe en mode mono-utilisateur
usersMontrer le nom d’utilisateur courant
usermodModifier un compte utilisateur
whoAffiche la liste des utilisateurs connectés à une machine (ordinateur)
Commandes pour gérer les utilisateurs

Pour plus de détails, suivez ces tutoriels :