Académique Documents
Professionnel Documents
Culture Documents
(Distribution Debian)
Introduction (Gestion des utilisateurs et groupes)
Dans cette deuxième partie, je vais vous expliquer comment gérer les utilisateurs et les groupes sur Linux.
Cela implique de connaitre les commandes (création, modification, suppression) et les fichiers de
configuration liés à celle-ci.
Comme tout OS, Linux permet de créer des utilisateurs pour se connecter au système. Mais quelques
conditions doivent être connues avant de commencer, il est à noter que :
• Seul le super utilisateur root peut créer ou modifier les comptes utilisateurs sur le système. La
commande su va donc devenir votre meilleur ami.
• Un compte d'utilisateur sans mot de passe est inactif (personne ne peut ouvrir de session avec ce
compte tant qu'un mot de passe ne lui a pas été attribué).
• Un identifiant de connexion (login) se crée toujours en minuscule et sans accents ni caractères
spéciaux.
la commande useradd peut être lancer grâce au terminal et permet de créer un compte utilisateur. Cette
commande doit être lancée en tant que super utilisateur (root), il faut donc utiliser la commande « su »
pour Elever vos privilèges avant de l’utiliser.
Remarque : adduser n’est pas une commande système Linux, il s’agit d’un script interactif proposé par
Debian et ses dérivés qui offrent une certaine facilité aux novices pour créer un compte utilisateur.
Syntaxe de la commande :
root@LX01:~# useradd <utilisateur> <options>
où <utilisateur> représente l'identifiant de connexion (le login) du nouveau compte d'utilisateur à créer.
Les Options
Plusieurs options peuvent être fournies à la commande. Chacune d'elle permet de configurer certains aspects
du nouveau compte utilisateur au moment de sa création.
Voici les principales options
Options Description
Permet de choisir l'emplacement du dossier personnel du nouveau compte. Sans cette option,
-d <chemin>
le dossier personnel aura le chemin /home/utilisateur/
-e <YYYY/MM/DD> Date à laquelle le compte utilisateur sera désactivé.
-g <nom du groupe ou gid> Nom du groupe ou GID de celui-ci. Le groupe doit exister.
Détermine les groupes auxquels le nouveau compte doit appartenir. Si un ou plusieurs de ces
-G <groupe1 groupe2>
groupes n'existe(nt) pas, l'exécution de la commande sera annulée.
-m Crée le répertoire personnel de l'utilisateur s'il n'existe pas.
Sélectionne le shell à utiliser pour exécuter les commandes du terminal. Sans cette option, le
-s <chemin d’un shell> shell par défaut est /bin/sh qui est un shell minimaliste. On lui préfèrera donc généralement le
/bin/bash.
Attribue un identifiant numérique unique et spécifique pour le nouveau compte. Sans cette
-u <uid>
option, le prochain UID disponible est automatiquement choisi.
Permet d’indiquer le chemin du répertoire squelette, qui contient les fichiers et répertoires à
-k <chemin> copier dans le répertoire personnel de l'utilisateur. Cette option n'est valable qu’avec l'option -
m.
BERTRAND RENARD 1
Initiation Linux
(Distribution Debian)
Exemple d’utilisation :
Créer un utilisateur avec son répertoire personnel
root@LX01:~# useradd bill -s /bin/bash -m
La commande ci-dessus crée le répertoire personnel (home) de l’utilisateur « bill » et lui affecte le shell bash.
Explications :
• Par défaut, le shell d’un nouvel utilisateur est défini sur /bin/sh qui est un shell moins performant
que le shell bash. L’option -s /bin/bash permet donc d’utiliser le shell bash à la place de celui par
défaut.
• Par défaut, la commande useradd ne crée pas le répertoire personnel de l’utilisateur. Sans répertoire
par défaut l’utilisateur ne peut absolument pas travailler. Il faut donc engager l’option -m pour en
créer un.
PS : A quoi sert de créer un utilisateur sans répertoire personnel puisqu’il ne pourra pas travailler? eh bien il
faut se souvenir qu’il existe des comptes utilisateurs qui ne sont pas utilisés par des personnes physiques, mais
par des processus qui eux n’ont pas besoin de répertoire personnel.
BERTRAND RENARD 2
Initiation Linux
(Distribution Debian)
Le fichier passwd
Le fichier passwd se trouve dans le répertoire /etc du système, il contient toutes les informations relatives
aux utilisateurs (identifiant de connexion, UID, GID du groupe principal, ...). Chaque ligne de ce fichier
caractérise un utilisateur.
Ce fichier contient les informations suivantes :
PS : Bien qu'il soit possible de modifier ce fichier directement, il n’est pas recommandé de le faire, car si
quelque chose est corrompu ou si nous supprimons par inadvertance quelque chose, nous pouvons nous
retrouver face à une catastrophe, car dans ce fichier se trouve une partie des données indispensables pour
ouvrir une session de travail mais également pour que le système fonctionne correctement.
BERTRAND RENARD 3
Initiation Linux
(Distribution Debian)
Modifier ou définir un mot de passe
La commande passwd sert à modifier le mot de passe d'un utilisateur, mais nous verrons qu'elle permet
également de réaliser d'autres actions très utiles. C'est une commande incontournable pour la gestion des
utilisateurs sous Linux.
il faut savoir qu'en exécutant la commande passwd dans sa propre session, sans spécifier d'argument, on
peut modifier le mot de passe de son propre compte utilisateur.
Exemple
Si je suis connecté avec le compte « bill » et que j'exécute la commande ci-dessous,
bill@LX01:~$ passwd
je suis invité à changer mon mot de passe, comme vous le montre la capture d’écran ci-dessous :
Le mot de passe saisit n'apparaitra pas à l'écran, c’est une protection contre les regards indiscret.
Par exemple, si je souhaite modifier le mot de passe de l'utilisateur « martin », il me suffit de préciser à la
commande le nom de l’utilisateur.
BERTRAND RENARD 4
Initiation Linux
(Distribution Debian)
Obtenir le statut d’un compte utilisateur
Nous pouvons obtenir le statut d'un compte utilisateur grâce à l'option « -S », le statut d’un compte
utilisateur nous donne accès aux informations suivantes :
• le nom de l'utilisateur ;
• l'état du mot de passe ;
• la date de dernière modification ;
• l'âge minimum du mot de passe ;
• l'âge maximum du mot de passe ;
• Le nombre de jours avant de recevoir un avertissement ;
• Le nombre de jours avant que le compte ne soit verrouillé.
Ce sont des informations qui sont obtenues à partir du fichier « /etc/shadow » qui stocke le mot de passe de
chaque utilisateur de manière chiffrée ainsi que les critères de validité de celui-ci.
Exemple d’utilisation
root@LX01:~# passwd -S bill
période d’avertissement
Lorsque l'expiration du mot de passe approche, un message est envoyé sur le terminal de l’utilisateur pour
l’avertir du délai qu’il lui reste avant que le compte ne soit verrouillé ou qu’il soit obligé de change de mot de
passe.
BERTRAND RENARD 5
Initiation Linux
(Distribution Debian)
Forcer le changement du mot de passe
Il est possible d’obliger un utilisateur à changer son mot de passe lors de sa prochaine ouverture de session,
pour ce faire nous utilisons l’option « -e ». Cette option peut s’avérer utile lorsque par exemple, un utilisateur
a commis quelques négligences nécessitant le renouvellement prématuré de son mot de passe.
Exemple d’utilisation
root@LX01:~# passwd -e bill
Cette commande obligera l'utilisateur « bill » à définir un nouveau mot de passe lors de sa prochaine ouverture de session.
Lors de la prochaine connexion de cet utilisateur, il sera obligé de changer de mot de passe. Il sera par ailleurs
précisé que c'est une décision de l'administrateur.
BERTRAND RENARD 6
Initiation Linux
(Distribution Debian)
Le fichier shadow
Le fichier shadow se trouve dans le répertoire /etc du système, il est indispensable au bon fonctionnement
du système car il sert à authentifier les utilisateurs se connectant à la machine. Comme de nombreux fichiers
sous Linux, il se présente sous la forme d'un fichier texte où chaque ligne contient différentes informations,
en rapport avec les mots de passe des utilisateurs du système.
Dans ce fichier, vous allez retrouver une ligne par utilisateur, c'est-à-dire que chaque utilisateur du système
sera représenté par une ligne dans ce fichier. Quand un mot de passe est défini pour un utilisateur avec la
commande « passwd », une ligne est ajoutée dans ce fichier.
Chaque ligne contient neuf champs ayant une signification particulière. Chaque champ est séparé par le
symbole « : » .
Champ1:Champ2:Champ3:Champ4:Champ5:Champ6:Champ7:Champ8:Champ9
BERTRAND RENARD 7
Initiation Linux
(Distribution Debian)
Création de groupe
Sous Linux, les groupes sont utilisés pour organiser et administrer les comptes d’utilisateurs. L’objectif
principal des groupes est de définir un ensemble d’autorisations telles que la lecture, l’écriture ou l’exécution
pour une ressource donnée qui peut être partagées entre plusieurs utilisateurs. Chaque utilisateur appartient
à un groupe.
Le groupe principal : Lorsqu’un utilisateur crée un fichier, son groupe principal est utilisé pour attribuer des
autorisations à ce fichier. Habituellement, le nom du groupe principal est le même que le nom de l’utilisateur.
Les informations sur le groupe principal de l’utilisateur sont stockées dans le fichier /etc/passwd.
Groupe secondaire : utile lorsque vous souhaitez accorder certaines autorisations de fichier à un ensemble
d’utilisateurs. Par exemple, si vous ajoutez un utilisateur spécifique à un groupe nommé « atelier »,
l’utilisateur héritera par exemple des droits d’accès aux ressources (fichiers/répertoires/programmes)
nécessitant l’appartenance à ce groupe.
Chaque utilisateur peut appartenir à un groupe principal et à zéro ou plusieurs groupes secondaires.
La commande groupadd est utilisée pour créer des groupes. C'est une autre commande incontournable pour
la gestion des utilisateurs sous Linux.
Syntaxe de la commande
root@LX01:~# groupadd <nom-du-nouveau-groupe>
Règles de nommage des groupes :
Exemple d’utilisation :
root@LX01:~# groupadd compta
La commande ci-dessus créera un groupe nommé compta et lui affectera un GID automatiquement.
BERTRAND RENARD 8
Initiation Linux
(Distribution Debian)
Le Fichier group
Le fichier group se trouve dans le répertoire /etc du système, il est indispensable au bon fonctionnement du
système car il sert à définir les groupes d’utilisateurs défini sur le système. Comme de nombreux fichiers sous
Linux, il se présente sous la forme d'un fichier texte où chaque ligne contient différentes informations.
Ce fichier contient 4 champs séparés par « : » .
1. Nom du groupe.
2. Mot de passe (x si défini dans /etc/gshadow).
3. GID (identifiant numérique du groupe).
4. Membres invités (séparés par des virgules, ne contient pas les membres principaux).
Chaque ligne du fichier /etc/group correspond à un groupe. Les utilisateurs dont ce groupe est leur groupe
principal ne sont pas listés, puisque cette appartenance est en fait déjà fournie par le fichier /etc/passwd.
GID = 1000
bill:x:1000:1000:Bill Gates,,,:/home/bill:/bin/bash
Ci-dessous la ligne de l’utilisateur bill, contenu dans le fichier passwd
Ci-dessous la ligne correspondante au groupe ayant le GID 1000 dans le fichier group
bill:x:1000:
GroupeB:x:512:bill
Cette relation permet de retrouver le nom du groupe principal d’un utilisateur directement à partir des
fichiers passwd et group.
Ci-dessous une ligne issue du fichier group, montrant un groupe secondaire dans lequel bill est membre.
GroupeB:x:512:bill
Le fichier group permet également de connaitre les groupes secondaires d’un utilisateur. Dans l’exemple ci-
dessus, nous pouvons voir que bill est membre également du groupe ayant le GID 512 nommé GroupeB, car
son nom est listé dans le 4eme champ.
BERTRAND RENARD 9
Initiation Linux
(Distribution Debian)
Modifier un groupe
Il est parfois utile de modifier un groupe existant sur le système, pour différentes raisons on pourrait tout
simplement vouloir rectifier le nom d’un groupe ayant été mal orthographier ou bien encore modifier son
GID. La commande groupmod permet de répondre à ce besoin.
Exemples d’utilisation :
Pour modifier le GID d’un groupe nommé « atelier », vous utiliserez la commande suivante :
root@LX01:~# groupmod -g 2500 atelier
Pour modifier le nom d’un groupe nommé « atelier » en « usine », vous utiliserez la commande suivante :
root@LX01:~# groupmod -n usine atelier
BERTRAND RENARD 10
Initiation Linux
(Distribution Debian)
Suppression d’un groupe
Si un groupe n’est plus nécessaire, il doit être supprimé du système. Ce paragraphe explique comment
supprimer un groupe sous Linux à l’aide de la commande groupdel.
La commande n’accepte que quelques options très rarement utilisées, par conséquent je n’en parlerai pas
ici.
Exemple d’utilisation :
La commande ci-dessus supprime l’entrée correspondante au groupe « atelier » dans les fichiers /etc/group
& /etc/gshadow. Vous pouvez le vérifier en affichant le contenu du fichier /etc/group.
En cas de succès, la commande n’imprime aucune sortie, en revanche si le groupe que vous souhaitez
supprimer n’existe pas, le système imprimera un message d’erreur comme suit :
groupdel: group 'atelier' does not exist
Si le groupe que vous souhaitez supprimer est affecté en tant que groupe principal a un utilisateur, le système
imprimera un message d’erreur comme suit :
groupdel: cannot remove the primary group of user 'bill'
BERTRAND RENARD 11
Initiation Linux
(Distribution Debian)
Modifier un compte utilisateur
Un compte utilisateur permet d’accéder à un environnement de travail. En production, le compte utilisateur
et les groupes permettent, entre autres, de définir des autorisations et permettent à un utilisateur d’accéder
à telles ou telles données. Il arrive qu’un utilisateur obtiennent de nouvelles autorisations par exemple
lorsque celui-ci change de service, ce qui nécessite de modifier son compte utilisateur et notamment les
groupes auxquels il appartient. La commande usermod permet de répondre à ce besoin.
Syntaxe de la commande :
root@LX01:~# usermod <options> utilisateur
utilisateur représente l’identifiant de connexion (login) d’un utilisateur.
PS : Pour être modifié, un utilisateur doit être déconnecté et ne pas avoir de processus en cours.
BERTRAND RENARD 12
Initiation Linux
(Distribution Debian)
Suppression d’un compte utilisateur
PS : Pour être supprimé, un utilisateur doit être déconnecté et ne pas avoir de processus en cours. La
commande userdel supprime la ligne concernant l’utilisateur dans les fichiers : /etc/passwd , /etc/shadow
et /etc/gshadow.
Attention aucune confirmation ne vous sera demandée lors de la suppression.
Exemples : Supprimer un compte utilisateur :
La commande ci-dessus supprime l’utilisateur bill mais ne supprime pas son dossier personnel (/home/bill)
celui-ci est conservé.
La commande ci-dessus supprime l’utilisateur bill ainsi que son dossier personnel (/home/bill) Le
répertoire et donc tout ce qu’il contient est supprimé sans retour arrière possible.
BERTRAND RENARD 13