Vous êtes sur la page 1sur 56

Administration système et sécurité sous LINUX

La gestion des utilisateurs Et des groupes

Unité Pédagogique
Systèmes

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
Prérequis

4
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.

5
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, 6
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.

7
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.
8
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
9
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.

10
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.

11
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.

12
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.

13
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.

14
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.

15
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

16
Les fichiers

 /etc/passwd

 /etc/group

 /etc/shadow

17
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 « : »

18
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 19
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,

20
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

21
Le fichier /etc/group (2/2)
3 Le groupe identifier
4 La liste des utilisateurs appartenant à ce groupe(secondaire).

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.

 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 . 22
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
23
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é.
24
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é:

25
La gestion des utilisateurs

26
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.
27
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.

28
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

29
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.

  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

30
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é.
31
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.

32
Modifier le mot de passe (2/6)

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


commande «useradd »,
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.

33
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.

34
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::
35
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) :

36
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

37
Modifier le mot de passe (6/6)

38
Modification d’un utilisateur (1/2)

La commande usermod 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

39
Modification d’un utilisateur (2/2)
Options:
Option Rôle
-L verrouillage du compte, comme passwd -l .
-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 personnel. Le contenu de l’ancien répertoire est
déplacé dans le nouveau.

40
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

41
La gestion des groupes

42
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) d'un utilisateur : 

# groups Salah
Esprit
Ecole
Admin

43
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.
-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.
44
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

45
Contrôle du propriétaire d'un fichier

La commande chfn (change full name) permet d'indiquer


dans le champ numéro 5 du fichier /etc/passwd différentes
informations sur un utilisateur.

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

46
Récapitulatif

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

48
Les droits étendus (SUID,SGID) (1/3)

Il est possible d’établir des droits d’accès étendus pour les


fichiers exécutables.

Quand on applique ces droits à une commande, cette dernière


s’exécutera avec les droits du propriétaire ou du groupe
d’appartenance de la commande et non plus avec les droits
d’utilisateurs l’ayant lancée.

49
Les droits étendus (SUID,SGID) (2/3)

L’exemple le plus simple est le programme passwd permettant de changer son


mot de passe. Si la commande était exécutée avec les droits d’un utilisateur
classique, passwd ne pourrait pas ouvrir et modifier les fichier /etc/passwd
et /etc/shadow

Seul le root peut modifier le fichier. La commande passwd ne pourrait donc pas
modifier ce fichier pour un simple utilisateur.

50
Les droits étendus (SUID,SGID) (3/3)

Si on regarde les droit de la commande passwd :

Un nouveau droit est apparu: le droit s pour les droits de root, Ce


nouvel attribut permet l’exécution de la commande avec des
droits d’accès étendus. Pendant le traitement, le programme est
exécuté avec les droit du propriétaire du fichier ou de son groupe
d’appartenance,
Le droit s sur l’utilisateur est appelé le SUID-bit (Set User ID bit),
et sur le groupe GUID-Bit (Set Group ID bit),

51
Attribution des droits étendus (1/2)

La commande chmod permet de placer les SUID-Bit et GUID-Bit :

 Méthode littérale :

# chmod u+s commande


# chmod g+s commande

 Méthode numérique :
Les valeurs octales sont 4000 pour le SUID-Bit et 2000 GUID-Bit.

# chmod 4755 commande


# chmod 2755 commande
52
Attribution des droits étendus (2/2)

NB:

 Seul le propriétaire ou l’administrateur peut attribuer ce droit.

 Affecter le SUID ou le GUID n’a pas de sens que si les droits


d’exécution ont préalablement été établis (attribut x sur le
propriétaire ou le groupe).

 Si ceux-ci ne sont pas présents, le s et remplacé par S

53
Le sticky bit (1/2)

Le sticky bit (bit collant) permet d’affecter une protection contre


l’effacement du contenu d’un répertoire.
Prenant l’exemple du répertoire /tmp, tout les utilisateurs ont tous
les droits sur son contenu :

Dans ce répertoire, tout le monde peut supprimer des fichiers y


compris ceux qui ne lui appartiennent pas.

54
Le sticky bit (2/2)

Le sticky bit appliqué à un répertoire, empêche cette manipulation.


Le fichier peut encore être visualisé et modifié , mais seul son
propriétaire (et le root) peuvent le supprimer.

 Méthode littérale

 Méthode numérique
En octal, on utilisera la valeur 1000 pour le sticky bit :

# chmod 1777 /tmp


55
Les permissions attribuées aux fichiers ou aux répertoire
peuvent être visualisées avec la commande ls -l.

56

Vous aimerez peut-être aussi