Vous êtes sur la page 1sur 53

Administration système et sécurité sous LINUX

La gestion des utilisateurs Et des groupes

Par : L’équipe
administration et
sécurité LINUX

1 1
Préambule

 La compréhension et la gestion des comptes


utilisateurs constituent un sujet très important pour
l'administration et la sécurité des systèmes Unix
même si on est la seule personne à l’utiliser.
 L’importance est d’autant plus conséquente si la
machine héberge plusieurs comptes de plusieurs
personnes.

2
Objectifs

La maitrise de ces différentes tâches d’administration :

La gestion des utilisateurs,

La gestion des groupes,

Les droits d’accès des utilisateurs.

3
Termes, fichiers et utilitaires utilisés:

/etc/passwd, /etc/shadow, /etc/group,


/etc/gshadow

useradd, userdel, usermod

passwrd, chage, gpasswd

groupadd, groupmod, groupdel

4
Prérequis

5
L’identification et l’authentification

L'accès aux services du système repose sur deux opérations


essentielles :

 L'opération d'identification consiste à annoncer qui on est,


afin de permettre au système de déterminer les permissions
auxquels on a droit.

 L'opération d'authentification consiste à « prouver » qu'on


est bien celui qu'on prétend être. Le système refuse ses
services à tout utilisateur inconnu ou qui n'a pas passé avec
succès la phase d'authentification.

6
Mécanisme d’authentification
1:init lance un terminal (processus getty)
INIT : crée un terminal
1 fils
2: le programme getty demande le nom
de l'utilisateur,
2 Terminal : Attente du 5 Login : Sortie
nom d’utilisateur
3: le processus getty passe ce nom au
programme login qui l'authentifie en lui
demandant son mot de passe.
Terminal : saisie du
3 nom d’utilisateur et
4: authentification de l’utilisateur afin de
Lancement du donner à chacun les droits d'accès aux
programme login Non différents services du système en fonction
de ses privilèges.

4 Login : Saisie de mot ? concordance


de passe
5: lancement du programme shell préféré
de l’utilisateur et chargement des fichiers
d’environnement (si oui) ou redonner la
Oui main au processus init (sinon)

Login : lancement du 6: Une fois la session est terminée (fin du


shell shell), init relance un nouveau terminal.
5
NB : Les processus (getty -> login ->
Shell : exécution des shell ) se substituent, cela veut dire
commandes
qu’il garde le même PID et c’est ainsi
6 que init reconnait la fin d’une
Shell : sortie connexion, 7
Principe d’un utilisateur

Un utilisateur est l’association d’un nom de connexion (le


login), à un UID et au moins un GID.

 UID : User ID.


 GID : Group ID.

Le login, le UID et le GID sont uniques.

8
Types d’utilisateurs

Il existe trois types d’utilisateurs sur le système :

 L’administrateur
Appelé aussi le root, il possède le contrôle total sur le système.

 Les utilisateurs applicatifs


Leur principal intérêt est de faciliter la gestion des droits d'accès
des applications et des démons. (exemple: un compte nommé
mail)

 Les simples utilisateurs:


Ce sont des comptes permettant aux utilisateurs de se connecter
et d'utiliser les ressources de la machine.
9
Le LOGIN
 Le login contient en principe 8 caractères

 Il doit commencer par une lettre et comporte au maximum 32


caractères,

 L’utilisation des caractères spéciaux est déconseillée dans le


nom d’utilisateur tel que (_) , (.), l’espace…

 Le login est sensible à la casse, les utilisateurs « esprit» et


« Esprit » sont différents
10
Le UID (User IDentifier)

 L’UID est un entier strictement positif


 Il sert à identifier l’utilisateur (ou le compte applicatif) tout au
long de sa connexion.
 Les UID d’une valeur inférieure à 100 sont associés à des
comptes spéciaux avec des droits étendus.
 Seul le UID 0 et le GID 0 sont standardisés et qui identifie le
root
 Selon les distributions, à partir de 100, 500 ou 1000, et ce
jusqu’à environ 60 000, ce sont les UID des utilisateurs sans
pouvoirs particuliers.

11
Les groupes(1/3)

 Un groupe est un ensemble d’utilisateurs qui partagent les


même ressources sur le système, et sont identifiés par un GID
 Chaque utilisateur fait partie d’au moins un groupe.
 Comme pour les logins, le GID du groupe accompagne toujours
l’utilisateur pour le contrôle de ses droits.
 Un utilisateur peut faire partie de plusieurs groupes,
 Il existe deux types de groupes pour un utilisateur : le groupe
primaire et les groupes secondaires.

12
Types des groupes (2/3)

 Le groupe primaire est celui qui est toujours appliqué à la


création d’un fichier.
 Si l’utilisateur «esprit» a pour groupe primaire users, alors les
fichiers créés par «esprit» auront comme groupe
d’appartenance users.
 Un utilisateur dispose de tous les droits associés à ses groupes
secondaires.
 Si «esprit» a comme groupe secondaire video et qu’un fichier
dispose des droits d’écriture pour ce groupe, alors «esprit» aura
le droit de modifier son contenu.

13
Les groupes (3/3)

 La commande id permet de connaître les informations


essentielles sur un utilisateur : uid, gid, groupes secondaires

 Pour un fichier créé par esprit, son propriétaire sera esprit et son
groupe sera le groupe principal de esprit : users.

14
Le GID (Group IDentifier)
 Le GID c’est un entier positif identifiant un groupe d’utilisateurs
sur le système,

 Si le groupe n’est pas spécifié au moment de la création de


l’utilisateur, deux stratégies sont employées pour assigner un
groupe par défaut :

 Le groupe par défaut est le même pour tous, le groupe « users » avec
le GID 100
 Le nom du groupe est semblable à celui de login, c’est la notion de
groupe privé par utilisateur (UPG user private group), c’est la
stratégie la plus utilisée actuellement.

15
Les mots de passe (1/2)

 Les mots de passe permettent d’authentifier les utilisateurs.

 La saisie est masquée (rien ne s’affiche).

 Ils doivent être assez complexes pour ne pas être découverts


facilement, mais assez intuitifs pour que l’utilisateur s’en souviennent.

 Les mots de passe sont cryptés (MD5, DES par exemple) et ne sont
pas directement lisibles sous leur forme cryptée par l’utilisateur afin
que personne ne puisse tenter de le décrypter via un quelconque
traitement.

 Un utilisateur devrait changer régulièrement son mot de passe.

16
Les mots de passe (2/2)
 Il est possible de forcer la longueur et la complexité via les
mécanismes d’authentification PAM et le fichier /etc/login.defs.
 Ce fichier est également consulté afin de modifier les
informations relatives aux utilisateurs (uid,gid,umask,…).

Exemple : /etc/login.defs

17
Les mots de passe (2/2)
 Il est possible de forcer la longueur et la complexité via les
mécanismes d’authentification PAM et le fichier /etc/login.defs.
 Ce fichier est également consulté afin de modifier les
informations relatives aux utilisateurs (uid,gid,umask,…).

Exemple : /etc/login.defs

18
Quelques champs de /etc/login.defs

GID_MAX nbr/UID_MAX nbr Plage d'identifiants numérique de groupe/user que les


GID_MIN nbr/UID_MIN nbr commandes useradd et groupadd peuvent utiliser.
PASS_MAX_DAYS nbr Nbr maximum de jours de validité d'un mot de passe. Après
cette durée, une modification du mot de passe est obligatoire

PASS_MIN_DAYS nbr Nbr min. de jours autorisé avant la modification d'un mot de
passe. Toute tentative de modification du mot de passe avant
cette durée est rejetée. Une valeur négative ou si rien n’est
précis signifie pas de nbr min
PASS_WARN_AGE nbr Nbr jours durant lesquels l'utilisateur recevra un avertissement
avant que son mot de passe n'arrive en fin de validité. Une
valeur négative ou si rien n’est précis signifie qu'aucun
avertissement n'est donné.
PASS_MAX_DAYS, PASS_MIN_DAYS et PASS_WARN_AGE: Ne sont utilisés qu'au moment
de la création d'un compte. Les changements n'affecteront pas les comptes existants.
19
Les fichiers

 /etc/passwd

 /etc/group

 /etc/shadow

20
Le fichier /etc/passwd (1/3)

 Contient la liste des utilisateurs du système local.

 Il est lisible par tout le monde.

 Les informations qu’il contient sont publiques et utiles tant


pour le système que pour les utilisateurs.

 Chaque ligne représente un utilisateur et comprend 7


champs, séparés par le symbole « : »

21
Le fichier /etc/passwd (2/3)

1 2 3 4 5 6 7

1 LOGIN : Nom de connexion de l’utilisateur


2 Mot de passe chiffré par la fonction a sens unique crypt
ou md5. La valeur spéeciale < x > indique que le mot de
passe chiffré est stocké dans /etc/shadow
3 UID : Numéro unique de l’utilisateur
4 GID : Numéro unique du groupe principal de l'utilisateur

5 Commentaire : champ de renseignements qui contient


habituellement un descriptif de l'utilisateur 22
Le fichier /etc/passwd (3/3)

6 Répertoire personnel : C’est un répertoire attribué à


l’utilisateur afin de sauvegarder ces données personnelles (la
variable d'environnement $HOME indique le répertoire
personnel de l’utilisateur)

7 SHELL: C’est le programme ou la commande qui va être


lancé suite à la connexion au système. Il s’agit généralement
d’un interpréteur de commandes,

23
Le fichier /etc/group (1/2)
 Ce fichier contient la définition des groupes d’utilisateurs
et pour chacun la liste des utilisateurs dont il est groupe
secondaire.
 Chaque ligne est composé sur 4 champs :

1 2 3 4

1 Le nom du groupe
2 Le mot de passe du groupe

24
Le fichier /etc/group (2/2)
3 Le groupe identifier
4 La liste des utilisateurs appartenant à ce groupe(secondaire)
séparés par une virgule.
NB :
 Il est inutile de replacer dans le quatrième champ les utilisateurs ayant
ce groupe pour groupe principal, c’est induit.
 Le champ mot de passe pour les groupes est rarement utilisé en
pratique:

 Un utilisateur a le droit de changer de groupe afin de prendre un groupe


secondaire comme groupe principal avec la commande newgrp ou sg.

 Dans ce cas, l’administrateur peut mettre en place un mot de passe sur


le groupe pour protéger l’accès à ce groupe en tant que groupe
principal . 25
Le fichier /etc/shadow (1/3)
Le fichier /etc/shadow accompagne le fichier /etc/passwd et sert à stocker
le mot de passe crypté des utilisateurs.

Il contient toutes les informations sur le mot de passe et sa validité dans le


temps.

Chaque ligne est composée de 9 champs séparés par des « : »

1 2 3 4 5 6 9

78
26
Le fichier /etc/shadow (2/3)
1 Le login
2 Le mot de passe crypté. Le $xx$ initial indique le type de cryptage.

3 Nombre de jours (depuis le 1 er janvier 1970) du dernier changement de mot


de passe.

4 Nombre de jours avant lesquels le mot de passe ne peut pas être changé (0 :
il peut être changé n’importe quand).
5 Nombre de jours après lesquels le mot de passe doit être changé.

6 Nombre de jours avant l’expiration du mot de passe durant lesquels l’utilisateur


doit être prévenu.
7 Nombre de jours après l’expiration du mot de passe après lesquels le compte
est désactivé.
8 Nombre de jours depuis le 1 er janvier 1970 à partir du moment où le
compte a été désactivé.
27
9 Réservé.
Le fichier /etc/shadow (3/3)
Pour connaître la date en fonction du 01/01/1970 utilisez la
commande date comme ceci, en ajoutant le nombre de jours
désiré:

Pour assurer la sécurité, le fichier /etc/shadow est créé à partir du


fichier /etc/passwd par la commande: pwconv.

Pour stocker les mots de passe dans /etc/passwd, la commande


pwunconv est utilisée

28
La gestion des utilisateurs

29
Ajout d’un utilisateur (1/4)

 La création d’un utilisateur pourrait être entièrement effectuée à la main :


1- Rajouter une ligne dans /etc/passwd,
2- Rajouter d’une ligne dans /etc/shadow,
3- Rajouter d’éventuelles informations dans /etc/group,
4- Créer le répertoire personnel et mettre à jour son contenu avec /etc/skel,
5- Changer les permissions et le propriétaire du répertoire personnel,
6- Changer le mot de passe (encodé).

NB: Le répertoire /etc/skel est une squelette du répertoire de connexion


des nouveaux utilisateurs.
30
Ajout d’un utilisateur (2/4)

Toutes les étapes précédentes peuvent être remplacées par la


commande «useradd »,
Syntaxe :
#useradd < options > nom_utilisateur
Description :
 Elle ajoute un nouveau compte et effectue les principales opérations :
 Création de l’utilisateur et remplissage des fichiers,
 Création d’un groupe privé d’utilisateur (de même nom que celui-ci),
 Création du répertoire personnel, remplissage et modification des droits.

31
Ajout d’un utilisateur (3/4)
Options:
L’option Le rôle
-m Crée aussi le répertoire personnel /home/login. Elle est parfois comprise par défaut.

-u Précise l’UID numérique de l’utilisateur.

-g Précise le groupe principal de l’utilisateur, par GID ou par son nom

-G Précise les groupes secondaires de l’utilisateur séparés par des virgules

-d Chemin du répertoire personnel. Généralement /home/<login>, mais n’importe quel


chemin peut être précisé.
-c Un commentaire associé au compte.

-k Chemin du répertoire contenant le squelette de l’arborescence du répertoire


utilisateur. C’est généralement /etc/skell.

-s Shell par défaut de l’utilisateur.

-p Le mot de passe de l’utilisateur.

-D Examiner les valeurs par défaut de la commande useradd 32


Ajout d’un utilisateur (4/4)

N.B
Si aucune option n’est précisée, les valeurs par défaut sont
récupérées au sein du fichier /etc/default/useradd ou
/etc/adduser.conf (Debian).

identifiant du groupe primaire


racine des rép. personnels
nb de jours avant destruction du compte
nb de jours avant expiration du mot de passe
shell de connexion attribué au compte
recopiés par défaut dans chaque rép. personnel

33
Exercice :
 Donner la commande qui ajoute la ligne suivante dans le fichier
/etc/passwd

# grep robert /etc/passwd


robert:x:1010:100:Compte de Robert:/home/robert:/bin/bash

 La commande ne crée pas de mot de passe. Il faut le faire à la main


avec la commande passwd.

# passwd robert
Changing password for robert.
Nouveau mot de passe :
Retaper le nouveau mot de passe :
Mot de passe changé.
34
Modifier le mot de passe (1/6)
 La commande passwd permet de gérer les mots de passe mais aussi
les autorisations de connexion et la plupart des champs présents dans
/etc/shadow.

 Tout utilisateur a le droit de changer son mot de passe, dans le délai


précisé par le champ 4 de /etc/shadow.

 L’action par défaut est de changer le mot de passe de l’utilisateur


courant.

 L’ancien mot de passe est demandé par sécurité.

 L’utilisateur root a le droit de modifier les mots de passe de tous les


utilisateurs du système, sans avoir à connaître le précédent mot de
passe.

35
Modifier le mot de passe (2/6)
La commande passwd :
Syntaxe :
$ passwd <options> login
Description :
 Permet le gestion des informations de validité
 Tous les champs de /etc/shadow peuvent être modifiés par la
commande passwd.

36
Modifier le mot de passe (3/6)
Options:

Option Rôle
-l Lock : verrouille le compte (! devant le mot de passe crypté).
-u Unlock : déverrouille le compte. Il n’est pas possible de déverrouiller
un compte qui n’a pas de mot de passe, il faut utiliser en plus -f pour
cela.
-d Supprime le mot de passe du compte.
-n <j> Durée de vie minimale en jours du mot de passe.
-x <j> Durée de vie maximale en jours du mot de passe.
-w <j> Nombre de jours avant avertissement.
-i <j> Délai de grâce avant désactivation si le mot de passe est expiré.
-S Statut du compte.

37
Exercice
Le compte esprit doit être modifié comme ceci :

• Il doit attendre 5 jours après saisie d’un nouveau mot de passe pour
pouvoir le changer,
• Son mot de passe est valide 45 jours,
• Il est prévenu 7 jours avant qu’i l doit changer de mot de passe,
• S’il ne change pas de mot de passe après 45 jours, il dispose encore de
5 jours avant d’être désactivé.

Donnez la commande passwd :

# passwd -n 5 -x 45 -w 7 -i 5 esprit

Voici la ligne de /etc/shadow associée.


esprit:$2a$10$dwbUGrC75bs3l52V5DHxZefkZyB6VTHsLH5ndjsNe/vF/HAzHOcR2
:13 984:5:45:7:5::
38
Modifier le mot de passe (4/6)
La commande chage permet de faire à peu près la même chose
que passwd.
Syntaxe :
$ chage <options> login
Description :
 Elle n’est accessible que par le root .
 Lancée sans autre argument que le login de l’utilisateur, elle est interactive.
 Notez à la fin la possibilité de modifier la date du dernier changement du
mot de passe et une date fixe d’expiration du mot de passe (champ 8) :

39
Modifier le mot de passe (5/6)
Options:

Option Rôle
-E permet de fixer une date d'expiration sous la forme Unix standard
(nombre de jours depuis le 1er janvier 1970) ou sous la forme
YYYY/MM/DD
-M permet de changer la valeur du nombre maximal de jours de validité
du mot de passe.
-m permet de changer la valeur du nombre minimal de jours de validité
de mot de passe.
-W permet de changer le nombre de jours d'alerte avant un changement
obligatoire de mot de passe.
-d permet de changer la date de dernier changement de mot de passe

40
Modifier le mot de passe (6/6)

41
Modification d’un utilisateur (1/2)

La commande usermod est utilisée pour modifier un compte.


Syntaxe :
$ usermod <options> login
Description :
 Elle prend la même syntaxe et les mêmes options que
useradd mais dispose aussi d’une syntaxe complémentaire

42
Modification d’un utilisateur (2/2)
Options usermod:
Option Rôle
-g Changer le groupe primaire
-G Changer le(s) groupe (s) secondaire(s).
Si l’utilisateur fait actuellement partie d’un groupe qui n’est pas listé, il
sera supprimé de ce groupe.
-L verrouillage du compte, comme passwd -l . Il n'est disponible que pour
root. Le verrouillage est effectué en rendant le mot de passe crypté
invalide (en le préfixant par un !).
-U Déverrouillage du compte, comme passwd -u.
-e <n> Expire : le mot de passe expire n jours après le 01/01/1970.
-u <UID> Modifie l’UID associé au login. Le propriétaire des fichiers appartenant à
l’ancien UID au sein du répertoire personnel est modifié en conséquence.
-l <login> Modifie le nom de login.
-m Move : implique la présence de -d pour préciser un nouveau répertoire 43
personnel. Le contenu de l’ancien répertoire est déplacé dans le nouveau.
Suppression d’un utilisateur

Supprimez un utilisateur avec la commande userdel.

Par défaut le répertoire personnel n’est pas supprimé.

Vous devez pour ceci passer l’option -r.

# userdel -r esprit

44
La gestion des groupes

45
Ajout d’un groupe

Vous pouvez créer un groupe directement dans le fichier /etc/group ou bien


passer par les commandes associées.

La commande groupadd permet de créer un groupe.

Sa syntaxe simple accepte l’argument -g pour préciser un GID précis.

Pour lister tous les groupes (primaire et secondaires) auxquels appartient


un utilisateur :

# groups Salah
Esprit
Ecole
Admin

46
Modification d’un groupe

La commande groupmod permet de modifier un groupe.

Syntaxe:

$ groupmod <options> nom_du groupe

Options:
Option Role

-n <nom> Renomme le groupe. Exp: groupmod –n newname oldname

-g <GID> Modifie le GID.

-A <user> Ajoute l’utilisateur spécifié dans le groupe (groupe secondaire).

-R <user> Supprime l’utilisateur spécifié du groupe.


47
Suppression d’un groupe

La commande groupdel supprime un groupe.

La commande vérifie d’abord si le groupe que vous voulez supprimer est le


groupe principal d’un utilisateur.

Dans ce cas le groupe ne peut pas être supprimé.

Il faut alors vérifier le système de fichiers pour supprimer toute trace de ce


groupe.

Exemple :

# groupdel amis

48
Suppression d’un groupe

La commande groupdel supprime un groupe.

La commande vérifie d’abord si le groupe que vous voulez supprimer est le


groupe principal d’un utilisateur.

Dans ce cas le groupe ne peut pas être supprimé.

Il faut alors vérifier le système de fichiers pour supprimer toute trace de ce


groupe.

Exemple :

# groupdel amis

49
Gestion des groupes: gpasswd
 La commande gpasswd permet d’administrer le fichier /etc/group
(ainsi que le fichier /etc/gshadow si l'option SHADOWGRP a été
définie lors de la compilation).
 Chaque groupe peut avoir des administrateurs, des membres ainsi
qu'un mot de passe.
 Le root possède les droits d'administrateur de groupe et de
membre:
 l'option –A: définit le(s) administrateur(s) de groupe
 l'option -M : définit les membres
 Un administrateur de groupe peut ajouter ou supprimer des
utilisateurs en utilisant respectivement les options -a et –d
 #gpasswd –a user group // gpasswd –d user group
 Les administrateurs peuvent utiliser l'option -r pour supprimer le
mot de passe d'un groupe. 50
Contrôle du propriétaire d'un fichier

 Pour changer le propriétaire d'un fichier ou d'un répertoire, il


faut utiliser chown.
# chown nom_user nom_fich

 Pour modifier le groupe d'un fichier ou d'un répertoire, il faut


utiliser chgrp.
# chgrp nom_group nom_fich

51
Récapitulatif

 Par défaut, passwd refusera de créer un compte sans mot


de passe associé (il ne déverrouillera pas un compte
contenant uniquement ! pour mot de passe).
 L'option -f outrepassera cette protection
 Un utilisateur normal ne peut modifier que les informations
associées à son propre compte, avec les restrictions
spécifiées dans /etc/login.defs.
 Le root peut modifier n’importe quel champ pour n’importe
quel compte.

52
Récapitulatif

gestion des comptes


useradd, usermod, userdel
utilisateur
groupadd, groupmod, groupdel gestion des groupes
changer le mot de
passwd
passe d'un utilisateur
chfn, id, groups, chage utilitaires divers

53

Vous aimerez peut-être aussi