0% ont trouvé ce document utile (0 vote)
33 vues73 pages

Unix/Linux : Droits d'Accès et Permissions

Transféré par

ossamazineeddine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues73 pages

Unix/Linux : Droits d'Accès et Permissions

Transféré par

ossamazineeddine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Abdelmalek Essaadi

Faculté des Sciences et Techniques de


Tanger

Administration Système et Réseaux

Pr. Abdelhamid ZOUHAIR

Intitulé du module Administration système et réseaux

Etablissement dont relève le module Faculté des Sciences et Techniques de Tanger

Filière Master Systèmes Informatiques et Mobiles

Semestre d’appartenance du module S2


A. U: 2021/2022

Administration système et réseaux

Architecture des systèmes de fichiers


UNIX/Linux (suite)

1
Administration système et réseaux
Architecture du système Unix/Linux
Protections et Droits d’accès
Sous Unix/Linux, tout utilisateur possède une identification (uid) et appartient à un
groupe particulier (gid).
Aussi, pour un fichier/répertoire donné, les utilisateurs du système peuvent être
classés en trois catégories :
le propriétaire du fichier, "user ", (u);
les membres du groupe propriétaire du fichier, "group ", (g);
les autres utilisateurs (reste des utilisateurs enregistrés sur les machines de
réseau), "others ", (o);
Tous les utilisateurs, "all ", (a) ou (u g o).
Trois types d’opérations élémentaires sont contrôlées par le système :
la lecture (r): lire un fichier / lister un répertoire ;
l’écriture (w): écrire un fichier / ajouter ou supprimer des fichiers dans le
répertoire;
et l’exécution (x): exécuter un fichier / se déplacer dans le répertoire.
Il y a donc neuf combinaisons possibles, qui sont codées en utilisant 9 bits de l’i-node
du fichier. Ces droits (ou permissions) d’accès ne peuvent être changés que par le
propriétaire du fichier (ou par son groupe d’utilisateurs ou tous autres s’ils ont les
droits d’accès), grâce à la commande chmod. 3

Administration système et réseaux


Architecture du système Unix/Linux
Protections et Droits d’accès
Ce masque de protection est affiché par la commande ls –l sous la forme de
neuf lettres : rwxrwxrwx, les trois premières correspondent aux permissions
de l’utilisateur propriétaire, les trois suivantes aux permissions du groupe
propriétaire et les trois dernières aux autres utilisateurs. Si une permission
n’est pas accordée, la lettre correspondante est remplacée par un tiret (-) :
rwxr-x--- est un masque de permission assez courant qui signifie que le
propriétaire a tous les droits, le groupe propriétaire (les utilisateurs du
même groupe ) a les droits de lecture et d’exécution et les autres
utilisateurs n’ont aucun droit (c’est-à-dire: pas du tout aux autres
utilisateurs).
Le Super-utilisateur:
Afin de permettre l’administration du système, un utilisateur spécial,
appelé super-utilisateur, (ou administrateur ou root), est toujours considéré
par le système comme propriétaire de tous les fichiers/ répertoires (et aussi
des processus).
Il est à signaler que, la personne qui gère le système est normalement la
seule à connaître son mot de passe. C’est le seul, normalement, qui peut
ajouter des nouveaux utilisateurs au système! 4

2
Administration système et réseaux
Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
A la création d'un compte d'utilisateur, l'administrateur affecte celui-ci à un
groupe. Chaque groupe possède un nom. Un utilisateur peut changer de
groupe par la commande newgrp.
On peut donner des droits d'accès particuliers à certains fichiers pour les
membres d'un même groupe.
Au total, il existe 3 types d'accès : propriétaire (u = user), groupe (g = group),
autres (o = other). L'ensemble est désigné par a (all).
L'expression des droits nécessite 12 bits :
Pour un fichier, r = droit de lecture, w = droit d'écriture, x = droit d'exécuter
(1 = oui, 0 = non)
Pour un répertoire,
r : on peut consulter la liste des fichiers qui y sont contenus
w : on peut créer ou effacer des fichiers à l'intérieur
x : on peut utiliser ce répertoire en argument d'une commande et s'y
positionner
Ces 9 bits sont précédés par 3 autres bits pour compléter la description des
protections : 5

Administration système et réseaux


Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
Les droits des fichiers d'un répertoire peuvent être affichés par la commande ls -l Les
droits d'accès apparaissent alors comme une liste de 10 symboles. :
drwxr-xr-x Le premier symbole peut être « - », « d », soit « l », entres autres . Il
indique la nature du fichier :
- : fichier classique
d : répertoire
l : lien symbolique
c : périphérique de type caractère
b : périphérique de type bloc
p : pipe (FIFO) "tube" ou "tuyau" en anglais ou pipeline aussi en français
s : socket
Suivent ensuite 3 groupes de 3 symboles chacun, indiquant si le fichier (ou répertoire)
est autorisé en lecture, écriture ou exécution. Les 3 groupes correspondent, dans cet
ordre, aux droits du propriétaire, du groupe puis du reste des utilisateurs. Ce sont ces
lettres qui sont utilisées pour symboliser les dites permissions. Si la permission n'est
pas accordée, la lettre en question est remplacé par « - ». Si l'on reprend les lettres
données pour lecture/écriture/exécution (read/write/execute), nous obtenons : rwx. 6

3
Administration système et réseaux
Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
user group other

1 1 0 1 1 1 1 0 1 1 0 0

r w x r w x r w x
set uid 0 : - - - (aucun droit)
attribut spécifique 1 : - - x (exécution)
set-gid 2 : - w - (écriture)
7 4 3 : - w x (écriture et exécution)
6 5 4 : r - - (lecture seule)
5 : r - x (lecture et exécution)
6 : r w - (lecture et écriture)
en octal
7 : r w x (lecture, écriture et
exécution) 7

Administration système et réseaux


Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
- le bit "set-uid" : quand il vaut 1 pour un fichier exécutable, le processus
d'exécution a les droits du propriétaire du fichier et non de l'utilisateur qui
le lance
- le bit "set-gid" : même rôle, mais relativement au groupe
- l'attribut spécifique : outre la valeur "-" pour les fichiers ordinaires, il peut
prendre la valeur :
- : fichier classique
d : répertoire
l : lien symbolique
s : socket

La commande ls (list) avec l'option l (long), (ls –l ), permet d'afficher les
protections de fichiers (ou les droits d’accès à un fichier). Alors que, la
commande chmod permet de modifier les protections (les droits d’accès)
d'un fichier.

4
Administration système et réseaux
Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
Droits d’accès en octal
En octal, chaque « groupement » de droits (pour user, group et other) sera
représenté par un chiffre et à chaque droit correspond une valeur :
r (read) = 4
w (write) = 2
x (execute) = 1
-=0
Par exemple,
0 : - - - (aucun droit)
Pour rwx, on aura : 4+2+1 = 7
1 : - - x (exécution)
Pour rw-, on aura : 4+2+0 = 6 2 : - w - (écriture)
Pour r--, on aura : 4+0+0 = 4 3 : - w x (écriture et exécution)
Ce qui permet de faire toutes 4 : r - - (lecture seule)
les combinaisons : 5 : r - x (lecture et exécution)
6 : r w - (lecture et écriture)
7 : r w x (lecture, écriture et exécution) 9

Administration système et réseaux


Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
Droits d’accès en octal
Exemple :
Soit le répertoire SIM avec les permissions suivantes:
drwxr-xr-x
On peut changer ces permissions en rwx r-x --- en
utilisant la commande chmod et les permissions en octal
comme suit :

En octal, on aura 750 : rwx r-x --- 7(4+2+1) 5(4+0+1) 0(0+0+0)


Pour mettre ces permissions sur le répertoire on taperait
donc la commande :
chmod 750 SIM
10

5
Administration système et réseaux
Architecture du système Unix/Linux
Les protections (Droits d’accès aux fichiers) des fichiers
Exemple 2: -rw-r--r--1 root root 0 Mar 1 19:16 [Link]

[Link] est un fichier. C’est le premier caractère qui donne le type de


fichier/répertoire (le - indique qu’il s’agit d’un fichier ordinaire).
Son propriétaire est root, du groupe root
les protections -rw-r--r--sont à interpréter selon les indications ci-dessus.
La commande ls - ias permet l'affichage des numéros d’inodes du répertoire.

11

Administration système et réseaux


Architecture du système Unix/Linux : Synthèse
Les protections des fichiers (Droits d’accès aux fichiers)
Affichage à l’aide de la commande: ls -l
groupe
-rw-r--r-- 1 root root 0 Mar 1 19:16 [Link]
nb liens propriétaire taille date nom

group
type

-rw-r--r--
user
others 12

6
Administration système et réseaux
Architecture du système Unix/Linux : l’arborescence
répertoire racine /

• le répertoire de login: ~
bin tmp home
• le répertoire courant: .
• le répertoire supérieur: ..
• connaître le rép. courant: pwd
unbuntu
• lister le contenu: ls
(voir “man ls”)

.ssh SIM Desktop

• chemin d’accès au fichier [Link]:


– /home/unbuntu/SIM/[Link] [Link]
– ou bien: ~/SIM/[Link]

13

Administration système et réseaux


Architecture du système Unix/Linux : l’arborescence
répertoire racine /

• le répertoire de login: ~
bin tmp home
• le répertoire courant: .
• le répertoire supérieur: ..
• connaître le rép. courant: pwd
unbuntu
• lister le contenu: ls
(voir “man ls”)

.ssh SIM Desktop

• chemin d’accès au fichier [Link]:


– /home/unbuntu/SIM/[Link] [Link]
– ou bien: ~/SIM/[Link]

14

7
Administration système et réseaux
Architecture du système Unix/Linux : l’arborescence
• pwd retourne:
/home/unbuntu/SIM
/
• se déplacer: cd
[/home/unbuntu/SIM]$ cd ..
[/home/unbuntu]$ tmp home
[/home/unbuntu]$ cd /tmp
[/tmp]$
FST unbuntu
• chemin relatif
• chemin absolu

.cshrc SIM Desktop


• créer un répertoire: mkdir
[/tmp]$ mkdir FST

• supprimer un répertoire: rmdir [Link]


[/tmp]$ rmdir FST répertoire courant
15

Administration système et réseaux

Gestion avancée des utilisateurs UNIX/Linux


(protocole AAA, ACL, PAM, NSS, etc.)

16

8
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Linux étant multiutilisateur, les personnes employant celui-ci doivent être identifiées afin
d’assurer la confidentialité. Pour identifier tous ces utilisateurs au niveau du système, un
numéro unique leur sera attribué : le UID (User’s ID).
UID User IDentifier. Identifiant unique d’utilisateur. L’UID identifie l’utilisateur tout au
long de sa connexion.
Il est utilisé pour le contrôle de ses droits et de ceux des processus qu’il a lancé.
Chaque utilisateur possède un groupe principal et peut être invité dans un ou plusieurs
groupes secondaires.
GID Group IDentifier. Identifiant unique de groupe.
Les groupes et utilisateurs se gèrent par leur identifiant numérique unique GID et UID.
Ce sont les UID et GID qui sont stockés au sein de la table des inodes, dans la table des
processus et non les logins.
Plusieurs utilisateurs peuvent faire partie d’un même groupe.
Les fichiers de déclaration des comptes et groupes se trouvent dans /etc.
Recommandation:
Il est recommandé d’utiliser les commandes d’administration au lieu de modifier
manuellement les fichiers.
17

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Tout utilisateur Unix/Linux est caractérisé par :
•un nom de connexion (login) ;
•un mot de passe ;
•un identifiant numérique unique (UID) ;
•un groupe primaire (GID) ;
•un commentaire (appelé gecos);
•le répertoire principal de l'utilisateur (home directory) ;
• un interpréteur de commandes (shell) par défaut.
Un utilisateur est identifié par le système par son UID.
L'utilisateur root a pour UID 0. C'est cette caractéristique qui lui confère
un accès complet au système.
L'ensemble de ces éléments est stocké dans le fichier /etc/passwd au
format texte.
18

9
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Les comptes utilisateur ne sont pas tous égaux sur Linux. On distingue trois types :
Super utilisateur (root):
• Il n’est pas concerné par les droits d’accès aux fichiers.
• Son UID égal à 0 (zéro) lui confère sa spécificité.
• Ce super utilisateur aura donc à sa charge les tâches d’administration du système.

Comptes systèmes (bin, daemon, sync, apache…):


• Ceux-ci servent à faciliter la gestion des droits d’accès de certaines application et
démons.
• Les UID compris entre 1 et 499 sont généralement utilisés pour ces comptes.
• Pour des raisons de sécurité, on fera on sorte que personne ne puisse se connecter
à la machine à partir de l’un de ces comptes.

Comptes ordinaires :
• leur vocation est de permettre à des utilisateurs standard de se connecter.
• L’UID d’un utilisateur ordinaire sera un nombre supérieur ou égal à 500.
19

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
L'ensemble de ces éléments est stocké dans le fichier /etc/passwd au format texte.
Utiliser la commande : … # sudo cat /etc/passwd

20

10
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux: Le fichier /etc/passwd
Le fichier /etc/passwd contient toutes les informations relatives aux utilisateurs
(login, mots de passe, ...). Seul le superutilisateur (root) doit pouvoir le modifier. Il
faut donc modifier les droits de ce fichier de façon à ce qu'il soit en lecture seule
pour les autres utilisateurs.
Ce fichier possède un format spécial permettant de repérer chaque utilisateur,
chacune de ses lignes possède le format suivant:
nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe :
commentaire : répertoire :
programme_de_demarrage

•Sept champs sont explicités séparés par le caractère ":" :


• le nom du compte de l'utilisateur
• le mot de passe de l'utilisateur (codé bien sûr)
• l'entier qui identifie l'utilisateur pour le système d'exploitation (UID=User ID, identifiant utilisateur)
• l'entier qui identifie le groupe de l'utilisateur (GID=Group ID, identifiant de groupe)
• le commentaire dans lequel on peut retrouver des informations sur l'utilisateur ou simplement son
nom réel
• le répertoire de connexion qui est celui dans lequel il se trouve après s'être connecté au système
• la commande est celle exécutée après connexion au système 21

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux: Le fichier /etc/passwd
Voici un exemple de fichier passwd :

Il est important de savoir que les mots de passe situés dans ce fichier sont chiffrés. Il
est donc inutile de l'éditer et de remplacer le champ mot_de_passe en tapant
directement le mot de passe, cela conduirait uniquement au blocage du compte.
Lorsqu'un utilisateur se connecte, le programme login compare le mot de passe tapé
par l'utilisateur (après l'avoir chiffré) à celui qui est dans le fichier passwd. Si ils sont
différents, la connexion ne peut être établie.
Pour pouvoir modifier le mot de passe d'un compte grâce à la commande passwd, il
faut être soit administrateur systême, soit propriétaire du compte (le système
demandera alors à l'utilisateur d'entrer l'ancien mot de passe avant de lui demander
d'enter 2 fois son nouveau mot de passe).

22

11
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux : fichier /etc/passwd
Le fichier /etc/passwd (en format texte) centralise toutes les informations
relatives aux utilisateurs connus sur le système.
Liste d'utilisateurs (un par ligne), dont chaque ligne contient 7 champs :
• le nom (login) : pas de majuscule et pas plus de 8 caractères sur certains
systèmes (éviter les caractères accentués).
• mot de passe : mot de passe chiffré ou «x» si le mot de passe est stocké
dansle fichier /etc/shadow
• le numéro d'utilisateur (UID) : identifiant entre 0 et 32767 (ou 65432 selon
les UNIX) unique de l'utilisateur
• le numéro de groupe d'utilisateurs (GID) : groupe par défaut de l'utilisateur.
Entre 0 et 32767. (ou 65432 selon les UNIX)
• le nom complet de l'utilisateur (gecos) : pour information.
• le répertoire d'accueil (homedir ) : répertoire par défaut quand on se
connecte et à laquelle est initialisée la variable $HOME
• le shell : le shell par défaut. S'il est vide, /bin/sh sera pris.
23

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux : fichier /etc/passwd
Ces champs (dans cet ordre) sont séparés par des « : » Pas de commentaires
possibles.
login :mot-de-passe :UID :GID :gecos :repertoire :shell
Exemple

Le fichier /etc/passwd est lisible par tous les utilisateurs, mais n'est
modifiable que par root
24

12
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux : fichier /etc/passwd

25

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux : Groupe d’utilisateurs
Un utilisateur appartient à :
• un groupe primaire
• plusieurs groupes secondaires éventuels
Souvent, à chaque utilisateur correspond un groupe :
• dont le GID est identique à l'UID de l'utilisateur ;
• dont le nom est le même que celui de l'utilisateur ;
• qui est le groupe primaire de l'utilisateur. (Unique Private
Group)
Les groupes associés à un utilisateur sont utilisés pour les
contrôles d'accès
Les groupes systèmes permettent souvent aux utilisateurs
de manipuler des devices (fax,audio, ...)
26

13
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux : fichier /etc/group
Les attributs qui caractérisent un groupe Unix/Linux sont :
• un nom (unique);
• un mot de passe (souvent jamais utilisé) ;
• un identifiant numérique unique (GID) ;
• une liste d'utilisateurs membres qui n'ont pas ce groupe
par défaut.
L'ensemble de ces éléments est stocké dans le fichier
/etc/group au format texte.
groupe :mot-de-passe :gid :liste

La liste des utilisateurs peut être vide ou contenir un ou


plusieurs nom d'utilisateurs séparés par un caractère « , ».
27

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux : fichier /etc/group

28

14
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux : /etc/shadow
À l'origine d'Unix, les mots de passe étaient stockés dans le
fichier /etc/passwd (deuxième champs)
• cryptés avec l'algorithme traditionnel crypt.
• Le fichier /etc/passwd est en lecture par tous
Comme ce fichier doit être accessible en lecture pour tout
les utilisateurs, le stockage des mots de passe été déplacé
vers le fichier a /etc/shadow dont l'accès en lecture est
restreint
• cryptés avec l'algorithme MD5 (de plus en plus utilisé).
• Le mot de passe chiffré n'est pas déchiffrable... mais une
attaque brutale à base de dictionnaires peut aboutir
• Seul root peut lire/modifier ce fichier
29

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux : /etc/shadow
Pour chaque utilisateur, le fichier /etc/shadow contient le mot de
passe de connexion et ses paramètres de validité :
• le nom de l'utilisateur
• le mot de passe chiffré
• la date du dernier changement de mot de passe
• le nombre minimum de jours entre deux changements du mot de Passe
• le nombre maximum de jours de validité du mot de passe
• le nombre de jours avant l'expiration du mot de passe à partir duquel
l'utilisateur est averti
• le nombre de jours pendant lesquels le compte peut être inutilisé
• la date d'expiration du compte
• un champ 'réservé‘

30

15
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux : /etc/shadow
Exemple

Il n'est pas possible de se logguer directement si le mot de passe est '*' ou '!!‘
Les dates se font en nombre de jours écoulés depuis le 1er janvier 1970 31

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Création/suppression d’un compte utilisateur : useradd
La commande « useradd » permet d’ajouter un nouvel usager.
Syntaxe : useradd [options] user
• adduser : lien symbolique sur useradd
Exemple
La commande suivante crée le compte zouhair avec la plupart des options
de base précisées.
useradd -m -u 1010 -s /bin/bash -d /home/zouhair -c
"Compte de zouhair" zouhair
Page 12

La commande «userdel» modifie les fichiers des comptes du système,


en supprimant toutes les entrées qui se réfèrent à login.
Les fichiers présents dans le répertoire personnel de l'utilisateur seront supprimés
en même temps que le répertoire lui-même. Les fichiers situés dans d'autres
systèmes de fichiers devront être recherchés et éliminés manuellement.
32

16
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Création/suppression d’un compte utilisateur : useradd

33

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Création/suppression d’un compte utilisateur : useradd
Principales options (cumulables) :

34

17
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Modification d’un compte utilisateur : usermod
La commande « usermod » modifie les informations d'un compte
utilisateur.
Syntaxe : usermod [options] user
•Ne pas modifier l'uid pendant que l'utilisateur exécute une application
•Accepte les mêmes options que la commande useradd
•Mais dispose aussi des options particulières

35

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Actions de l’utilisateur
L’utilisateur dispose de certaines actions sur les informations de son compte :
• changer son shell de connexion,
• changer ses informations personnelles,
• changer de groupe principal,
• prendre l’identité de quelqu’un d’autre.
La commande chsh est invoqué pour modifier le shell qui est appelé lors de la
connexion de l'utilisateur.
• -s : Indique le shell de connexion désiré.
• -l : Affiche la liste des shells mentionnés dans /etc/shells
Le commentaire du fichier /etc/passwd peut être modifié par l’utilisateur à
l’aide de la commande chfn.
La commande newgrp qui permet de changer de groupe principal ,
L'équivalent de la commande su pour les groupes.
La commande su permet de change d'identité et ainsi d'exécuter un processus
avec une autre identité. 36

18
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Changement de mot de passe
La commande passwd permet de changer un mot de passe.
• Tout utilisateur a le droit de changer son mot de passe, dans le délai
précisé par le 4 champ de /etc/shadow.
Tous les champs de /etc/shadow peuvent être modifiés par la
commande passwd.

37

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Commandes de gestions des groupes
La commande «groupadd» permet de créer un groupe sur le
système.
Syntaxe :groupadd [options] user
Accepte l’argument -g pour préciser un GID précis
La commande « groupmod» permet de modifier un groupe.
Ses paramètres sont les suivants :

38

19
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Commandes de gestions des groupes
La commande « groupdel » supprime un groupe.
• Le groupe ne peut pas être supprimé si c’est un groupe principale
d’un utilisateur.
La commande « groups » permet de vérifier l'appartenance à un
groupe
• affiche les groupes auxquels l'utilisateur appartient
La commande newgrp permet de changer à titre temporaire de
groupe principal
•À condition que le nouveau groupe précisé soit un groupe
secondaire de l’utilisateur et/ou que l’utilisateur dispose du mot
de passe du groupe.
• Les modifications sont temporaires, le fichier des mots de passe
n’est pas modifié.
39

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Conversion des fichiers : pwunconv
Quelques systèmes Unix n’utilisent pas par défaut (il faut l’activer
après) la gestion des comptes avec les fichiers shadow.
Dans ce cas il peut être nécessaire de convertir les
fichiers/etc/shadow et /etc/passwd en un seul et unique /etc/passwd.
La commande pwunconv crée le fichier passwd à partir des fichiers
passwd et shadow puis supprime shadow.
La commande pwunconv est destructive. Toutes les informations des
durées de validité des mots de passe sont détruites.
La commande pwconv crée le fichier shadow à partir du fichier
passwd
Elle place les réglages par défaut tels que définis dans le fichier
/etc/[Link]

40

20
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Commandes additionnelles
La commande pwck effectue une vérification des fichiers /etc/passwd et /etc/shadow
et reporte les erreurs.
• un shell inexistant, un répertoire personnel absent, etc.
La commande grpck fait la même chose pour les groupes.
• Dans ce cas le contrôle se limite aux doublons et à l’existence des utilisateurs
pour les groupes secondaires
La commande «lastlog» est utilisée pour imprimer la dernière heure de connexion
pour les comptes système. L’information de connexion est lue du fichier
/var/log/lastlog.
• -t n : affiche seulement les connexions plus récentes qu’il y a 'n’ jours.
• -u username :affiche seulement l’information pour le nom d’utilisateur.
La commande «last» est utilisée pour afficher la liste des derniers utilisateurs
connectés. Les informations des derniers utilisateurs connectés sont lues du fichier
/var/log/wtmp.

41

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Notifications à l’utilisateur
Lorsqu’un utilisateur se connecte depuis la console, un message est
généralement affiché juste avant l’invite de saisie de son login.
Ce message est contenu dans le fichier /etc/issue.
Le message d’accueil peut être différent lorsqu’un utilisateur se
connecte depuis une console distante (telnet,ssh,etc.)
Ce message est contenu dans le fichier /etc/[Link].
Le fichier /etc/motd est normalement affiché après la connexion d'un
utilisateur et avant que l'interpréteur de commandes ne soit lancé.
Motd signifie Message of the day, le message du jour.
Il est généralement utilisé pour d'importantes annonces concernant
le système.

42

21
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
L’environnement utilisateur :/etc/skel
À la création d’un utilisateur et de son répertoire personnel,
l’environnement de l’utilisateur est mis en place.
L’environnement contient par exemple les alias, les variables
d’environnement, l’exécution de divers scripts.
Lors de la création d’un compte, les divers fichiers de configuration
sont copiés depuis le contenu du répertoire /etc/skel (skeleton) vers le
répertoire personnel .
Si vous souhaitez modifier les environnements de façon globale AVANT
la création des utilisateurs, vous pouvez placer dans /etc/skel tous les
fichiers que vous souhaitez et les modifier selon votre convenance.
Si par exemple vous souhaitez que tout le monde dispose des mêmes
icônes par défaut sur son bureau, et la même configuration par
défaut du bureau, placez-y le réspertoire Desktop et .kde d’un
compte modèle. 43

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Configuration avancée : /etc/default/useradd
Le fichier /etc/default/useradd contient un certain nombre de variables
définissant les règles par défaut à appliquer à la création d’un compte.
• son groupe,
• la racine de son répertoire personnel (là où celui-ci sera situé),
• s’il est actif ou non,
• le shell,
• son ou ses groupes secondaires,
• l’endroit où est situé le squelette des comptes (structure de base
d’un répertoire utilisateur),
• la création ou non d’un spool (dépôt) de courrier,
• etc.

44

22
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Configuration avancée : /etc/default/passwd
Le fichier /etc/default/passwd contient quelques règles
utilisées par la commande passwd pour le cryptage des mots
de passe.

Le fichier /etc/default/su permet de configurer le


fonctionnement de la commande su.

45

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Configuration avancée : /etc/[Link]
Le fichier /etc/[Link] est utilisé par de nombreuses commandes
comme login, useradd, groupadd, passwd pour définir quelques
valeurs par défaut et la validité des logins.
• une règle de validité des comptes (caractères autorisés, longueur,
etc.)
• les UID min et max lors de la création d’un utilisateur,
• les GID min et max lors de la création d’un groupe,
• les commandes à appeler pour les ajouts/modifications/créations
d’utilisateur,
• les règles par défaut pour la validité des mots de passe,
• la création ou non d’un répertoire personnel,
• etc.
46

23
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Configuration avancée : /etc/[Link]
Exemple du fichier /etc/[Link]

47

Administration système et réseaux

Access Control List (ACL) sous Unix/Linux

48

24
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) ( liste de contrôle d'accès) : Désigne
traditionnellement deux choses en sécurité informatique :
• En Système UNIX/Linux : un système permettant de faire
une gestion plus fine des droits d'accès aux fichiers que ne le
permet la méthode employée par les systèmes UNIX/Linux.
• En réseau, une liste des adresses et ports autorisés ou
interdits par un pare-feu.

49

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Une ACL est une liste de permissions sur un fichier, un répertoire ou
une arborescence, ajoutée aux permissions « classiques » de ce fichier.
Ces permissions concernent des utilisateurs et/ou des groupes définis.
• Au moyen des ACL, on peut étendre le nombre d'utilisateurs et de groupes ayant des
droits sur un même fichier. Rappelons que, dans le monde Unix/Linux, chaque fichier
ne peut normalement indiquer des permissions que pour un seul utilisateur et un
seul groupe, qui s'opposent à une unique catégorie correspondant à « tous les
autres » (ou « le reste du monde »).
• Avec les ACL, on peut ajouter à un fichier d'autres utilisateurs et groupes et définir
leurs droits séparément.
• Les ACL sont très utiles (voire indispensables) dans des environnements
informatiques axés sur le travail collaboratif et mutualisé.
Remarque:
• Sous Unix/Linux, les ACL ne remplacent pas la méthode habituelle des droits. Pour
garder une compatibilité, elles s'ajoutent à elle au sein de la norme POSIX.
50

25
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Les systèmes de type UNIX n'acceptent, classiquement, que trois types de droits :
•lecture (Read);
•écriture (Write);
•exécution (eXecute).
pour trois types d'utilisateurs :
•le propriétaire du fichier ;
•les membres du groupe auquel appartient le fichier ;
•tous les autres utilisateurs.
Cependant, cette méthode ne couvre pas suffisamment de cas, notamment en entreprise. En
effet, les réseaux d'entreprises nécessitent l'attribut de droits pour certains membres de
plusieurs groupes distincts, ce qui nécessite diverses astuces lourdes à mettre en œuvre et à
entretenir sous Unix.
L'intervention de l'administrateur est souvent nécessaire pour créer les groupes
intermédiaires qui permettront de partager des fichiers entre plusieurs utilisateurs ou groupes
d'utilisateurs, tout en les gardant confidentiels face aux autres.
Les ACL permettent de combler ce manque. On peut permettre à n'importe quel utilisateur,
ou groupe, un des trois droits (lecture, écriture et exécution) et cela sans être limité par le
nombre d'utilisateurs que l'on veut ajouter. 51

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Vérifier la configuration du noyau
Les ACL ne peuvent être utilisées que si le noyau le supporte ; pour savoir si c'est votre
cas, loguez-vous en tant que root avec sudo su si vous êtes sous (k)Ubuntu ou su - sous
debian et les autres distributions.
Tapez ensuite : grep ACL /boot/config-*

52

26
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Vérifier la configuration du noyau
La ligne suivante indique que le support général des ACL est présent :
CONFIG_FS_POSIX_ACL=y

Ensuite des lignes du type :


CONFIG_SystemeDeFichiers_FS_POSIX_ACL=y
permettent de savoir pour quels systèmes de
fichiers les ACL sont disponibles :
On remarque dans notre cas, Les ACL
fonctionnent sur les volumes formatés en
EXT4 et d'autres formats aussi.

53

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux

Commandes
Les deux commandes permettant de visualiser les droits ACL et de les
modifier sont, sous Unix/Linux :

Setfacl: Pour manipuler (modifier) l'ACL d'un fichier.


getfacl : pour consulter ou visualiser l'ACL un fichier.

Remarque: Les commandes traditionnelles chmod (et chown) ne


peuvent accéder aux ACL.

54

27
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Commande setfacl
Le nom de la commande se comprend set file's ACL
(« régler l'ACL du fichier »). Elle possède de nombreuses
options dont il convient de prendre connaissance en
consultant la page de manuel ( man setfacl).

Ajouter des permissions


Pour ajouter une ACL, vous devez utiliser la commande setfacl
avec l'option -m : setfacl -m permissions fichierOuDossier

55

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Commande setfacl : Ajouter des permissions
Pour ajouter une ACL, vous devez utiliser la commande setfacl avec l'option -m :
setfacl -m permissions fichierOuDossier
les permissions s'écrivent sous cette forme :
préfixe:[utilisateur Ou Groupe:]droits
Les préfixes disponibles sont :
u: : Pour modifier les droits d'un utilisateur
g: : Pour modifier les droits d'un groupe
o: : Pour modifier les droits du reste du monde (other)
Pour le préfixe o:, il ne faut pas spécifier d'utilisateur (logique, puisque ces droits
s'appliquent au reste du monde, qui n'est pas un utilisateur précis ;
Les droits s'écrivent sous la forme d'un triplet rwx que vous devez déjà connaitre:
r = droit de lecture
w = droit d'écriture
x = droit d'exécution pour les fichiers, pour les dossiers, c'est le droit
"d'entrée" dans le dossier
Remarque : Pour ne pas attribuer un droit, vous pouvez ne pas écrire sa lettre
correspondante ou la remplacer par un tiret (r-- est équivalent à r) 56

28
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Commande setfacl : Ajouter des permissions
Pour ajouter une ACL, vous devez utiliser la commande setfacl avec l'option -m :
setfacl -m permissions fichierOuDossier
les permissions s'écrivent sous cette forme :
préfixe:[utilisateur / Groupe:]droits
Exemple:
setfacl -m u::rwx,g::rwx,o:--- [Link]

setfacl permet de modifier les droits classiques (comme chmod).


57

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Commande setfacl : Supprimer une ACL
supprimer les ACL pour un utilisateur sur une arborescence
setfacl -R -x user::nom_user repertoire_base_arborescence
supprimer les ACL sur un fichier/dossier
setfacl -b fichier
Pour annuler tout ou partie d'une ACL :
setfacl -b /home/SIM2022/[Link]
Vous pouvez supprimer une partie de l'ACL avec l'option -x :
setfacl -x u:SIM2022,g:SIM2022 test... supprimera les permission de
l'utilisateur SIM2022 et du groupe amis du fichier test
Remarque:
Pour supprimer UNIQUEMENT les autorisations par défaut, vous devez
utiliser l'option -k, TOUTES les permissions par défaut seront
supprimées (setfacl –k). 58

29
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Access Control List (ACL) sous Unix/Linux
Commande getfacl
Cette commande suivie d'un nom de fichier affiche l'ACL de
ce fichier (get file's ACL « récupérer l'ACL du fichier »).

cette commande getfacl vous permet de connaitre les ACL en place.


59

Administration système et réseaux

L’authentification sous UNIX/Linux :


Pluggable Authentication Modules (PAM)
Modules d‘Authentification Enfichables

60

30
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux
Identitification
Désigne l’action consistant à identifier (donner, attribuer un nom ou un code
en propre à la chose ou la personne ainsi reconnue) un objet ou un individu.
Authentification
Est la procédure qui consiste, à vérifier l’identité d’une personne ou d’un
ordinateur.
L’identification permet donc de connaître l’identité d’une entité alors que
l’authentification permet de vérifier cette identité (autoriser).

Une authentification, c’est:


• identification : login
• authentification : le mot de passe
• autoriser
61

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux : Besoins
A l'origine, sous Unix/Linux (et dans les premières versions de Linux), le fichier qui
centralisait la gestion des utilisateur était /etc/passwd. Il contenait nombre
d'informations sensibles, dont le mot de passe chiffré. Or, pour pouvoir utiliser une
machine Unix, la première chose à faire était de s'authentifier via le programme
login (dernier programme lancé par init). Ce programme avait donc été développé
pour parser le fichier /etc/passwd.

/etc/passwd :
login:pass:uid:gid:gecos:home:shell
/etc/group :
nom:pass:gid:member...
Problématiques des temps anciens
mots de passe (chiffrés) lisible par tous
pas d’expiration des comptes
pas d’expiration des mots de passe
62

31
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux : Besoins
/etc/passwd : login:pass:uid:gid:gecos:home:shell

63

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux : Besoins
Cependant, on s'est apercu que stoquer les mots de passe utilisateur dans un fichier
en lecture pour tout le monde pouvait représenter un trou de sécurité (les machines
personnelles étant de plus en plus aptes à effectuer du brute force pour retrouver
des mots de passe). Cette constatation a eu pour conséquence la création d'un
fichier de mot de passe déporté appelé /etc/shadow.
Seulement, login devait être réimplémenté pour prendre ce changement en
considération. Il en était en fait de même pour tous les programmes qui
nécessitaient une authentification (ftp, su, sudo...).
Le fichier shadow :
lisible uniquement par root (droits : -r--r-----)
contient :
login:passwd:lstchg:min:max:warn:inact:expire:flag
mots de passe dans le /etc/passwd :
x en temps normal
!! pour les comptes bloqués
Chiffrement (Linux): mots de passe chiffrés (chiffrement: MD5, DES ,…). 64

32
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux : Besoins
Le fichier shadow : login:passwd:lstchg:min:max:warn:inact:expire:flag
mots de passe dans le /etc/passwd : x en temps normal !! pour les comptes bloqués
Chiffrement (Linux): mots de passe chiffrés (chiffrement: MD5, DES ,…).

65

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
L’authentification sous UNIX/Linux : Besoins
Par la suite, on s'est aperçu que disposer d'un fichier plat pour l'authentification
pouvait représenter une certaine limite lorsque l'on manipulait des dizaines de
milliers de comptes. D'autres base de données furent donc été utilisées, telles que
les annuaires. L'idée fut révolutionnaire mais le problème était qu'encore une fois, il
fallait réécrire certaines parties du code d'authentification des applications
concernées.
Ces constatations faites (quelques heures de génie logiciel et quelques centaines de
milliers de lignes de code plus tard), les développeurs du noyau Linux ont eu l'idée de
déporter toute la couche d'authentification en dehors des programmes en ayant
besoin. Ils ont donc créer les Pluggable Authentification Modules.

Modules d‘Authentification Enfichables


Pluggable Authentication Modules (PAM)

66

33
Administration système et réseaux
L’authentification sous UNIX/Linux
modules d'authentification enfichables (PAM)
Modules d'authentification enfichables (PAM) sont des mécanismes permettant
d'intégrer plusieurs schémas d'authentification de bas niveau dans une API de haut
niveau, qui permet aux programmes qui reposent sur l'authentification d'être écrits
indépendamment du schéma d'authentification sous-jacent.
PAM se positionne en interface entre les applications et les méthodes
d’authentification. Application

API

Modules
Une application demande à PAM si un utilisateur peut se connecter. PAM en fonction
de sa configuration, appelle des modules fonctionnels qui vont exploiter une
méthode d’authentification. Si le résultat est positif (l’utilisateur a fourni les bons
éléments d’authentification), PAM renvoie l’autorisation de connexion à l’application.
67

Administration système et réseaux


modules d'authentification enfichables (PAM)
Fichiers de configuration PAM
Le répertoire /etc/pam.d/ contient les fichiers de configuration PAM pour chaque
application compatible PAM. Dans les versions précédentes de PAM, le fichier /etc/[Link]
était utilisé, mais ce fichier est désormais obsolète et n'est utilisé que si le répertoire
/etc/pam.d/ n'existe pas.

68

34
Administration système et réseaux
modules d'authentification enfichables (PAM)
Fichiers de configuration PAM
Le répertoire /etc/pam.d/ contient les fichiers de configuration PAM pour chaque
application compatible PAM.
Chaque application s’appuyant sur PAM aura besoin d’un fichier (en général du même nom
que l’application) qui contiendra sa configuration PAM.
Format d’un fichier de /etc/pam.d
Le fichier contiendra autant de lignes qu’on souhaite appeler de modules avec pour chaque
ligne la structure suivante : type contrôle module arguments
Ou : <module interface> <control flag> <module name> <module arguments>
Type (module interface): Représente le type d’action qui nécessite le recours à PAM. Les
quatre valeurs possibles sont : auth, account, password et session.
contrôle : Indique comment le module doit réagir au succès ou à l’échec de son exécution. Les
valeurs courantes sont required, requisite, sufficient et optional. (obligatoire, requis, suffisant et
facultatif).
module (module name): Le nom du module appelé. Le format normalisé est :
pam_service.so, où service représente le nom courant du module.
arguments : Paramètres optionnels envoyés au module pour modifier son fonctionnement.

69

Administration système et réseaux


modules d'authentification enfichables (PAM)
Fichiers de configuration PAM
Format d’un fichier de /etc/pam.d
Le fichier contiendra autant de lignes qu’on souhaite appeler de modules avec pour chaque
ligne la structure suivante : type contrôle module arguments
(<module interface> <control flag> <module name> <module arguments>)
Le programme compatible PAM est chargé de définir son nom de service et d'installer son
propre fichier de configuration PAM dans le répertoire /etc/pam.d/.
Par exemple, le programme login définit son nom de service comme login et installe le fichier
de configuration PAM /etc/pam.d/login.
Extrait d’un fichier de configuration pam pour l’application login

Dans cet exemple, il est question d’authentification (auth), l’exécution du module est requise
(requisite), le module exploite le fichier pam_nologin.so.
70

35
Administration système et réseaux
modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
type contrôle module arguments
(<module interface> <control flag> <module name> <module arguments>)
Les Interface du module (types d’action de PAM )
Quatre types d'interface de module PAM sont actuellement disponibles. Chacun d'eux
correspond à un aspect différent du processus d'autorisation :
[Link] : Cette interface de module authentifie les utilisateurs. Par exemple, il demande et vérifie
la validité d'un mot de passe. Les modules dotés de cette interface peuvent également définir
des informations d'identification, telles que des appartenances à des groupes ou des tickets
Kerberos.
[Link] : Cette interface de module vérifie que l'accès est autorisé. Par exemple, il peut
vérifier si un compte utilisateur a expiré ou si un utilisateur est autorisé à se connecter à un
moment particulier de la journée.
[Link] : Cette interface de module est utilisée pour changer les mots de passe des
utilisateurs.
4. session : Cette interface de module configure et gère les sessions utilisateur. Les modules
dotés de cette interface peuvent également effectuer des tâches supplémentaires nécessaires
pour autoriser l'accès, comme le montage du répertoire personnel d'un utilisateur et la mise à
disposition de la boîte aux lettres de l'utilisateur. 71

Administration système et réseaux


modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
type contrôle module arguments
(<module interface> <control flag> <module name> <module arguments>)
Les Interface du module : Interface du module d'empilage
Les directives des interfaces de modules peuvent être empilées ou placées les unes sur les autres,
afin que de multiples modules puissent être utilisés ensemble dans un but particulier. Dans de telles
circonstances, l'ordre dans lequel les modules sont répertoriés est très important au niveau du
processus d'authentification.
Grâce à l'empilage, un administrateur peut facilement exiger la présence de différentes conditions
avant d'autoriser un utilisateur à s'authentifier.
Par exemple, rlogin utilise normalement cinq modules auth empilés, comme le montre son fichier
de configuration PAM :

Rlogin : rlogin est une commande Unix de la famille des commandes R (initiale de remote : « à
distance » en anglais) qui permet d'ouvrir une session à distance sur une autre machine de type
Unix, via TCP sur le port 513.
Rlogin :Une des utilisations majeures de la commande rlogin est de se connecter à une machine
Unix, en fournissant un identifiant, puis un mot de passe. On a alors accès à la machine, en ligne de
72
commandes : # rlogin ''machine distante'‘

36
Administration système et réseaux
modules d'authentification enfichables (PAM)
Telnet, ssh, rcp, rsh, scp,…
SSH (Secure Shell) est à la fois un programme informatique et un protocole de communication
sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de
connexion. Par la suite, tous les segments TCP sont authentifiés et chiffrés. Il devient donc
impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.
Le protocole SSH a été conçu avec l'objectif de remplacer les différents protocoles non chiffrés
comme rlogin, telnet, rcp et rsh.
Telnet (terminal network ou telecommunication network, ou encore teletype network) est un
protocole utilisé sur tout réseau TCP/IP, permettant de communiquer avec un serveur distant en
échangeant des lignes de texte et en recevant des réponses également sous forme de texte (le texte
étant échangé en clair) .
rcp (remote copy) est un programme issu du package rlogin qui permet de copier des fichiers sur ou
à partir d'une autre machine, reliée en réseau. Pour des raisons de sécurité, les administrateurs
peuvent bloquer les accès rcp ; on lui préfère maintenant scp.
SCP (Secure copy) désigne un transfert sécurisé de fichiers entre deux ordinateurs utilisant le
protocole de communication SSH. Le terme SCP désigne aussi bien le programme scp que le
protocole scp.
rsh (remote shell) est une commande de shell sous UNIX/LINUX. Ce programme est issu du package
rlogin, et permet de se connecter (logger) sur une autre machine pour exécuter une unique commande.
Pour des raisons de sécurité, les administrateurs peuvent bloquer les accès rsh. Aujourd'hui, on lui préfère
SSH. 73

Administration système et réseaux


modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
type contrôle module arguments
(<module interface> <control flag> <module name> <module arguments>)
Les Interface du module : Interface du module d'empilage
Exemple rlogin (suite) :
il utilise cinq modules auth empilés, comme le montre son fichier de configuration
PAM : 1
2
3
4
5

Avant d'accorder l'autorisation d'utilisation de rlogin,


1. PAM s'assure que le fichier /etc/nologin n'existe pas,
2. que l'utilisateur n'essaie pas de se connecter à distance en tant que super-
utilisateur (ou root) au moyen d'une connexion réseau (par exemple rlogin via TCP
sur le port 513).
3. et que toutes les variables d'environnement peuvent être chargées.
4. Et Si une authentification rhosts peut être établie avec succès,
5. la connexion est alors autorisée. En revanche, si l'authentification rhosts échoue,
une authentification standard de mot de passe est exécutée. 74

37
Administration système et réseaux
modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
Pam_nologin.so; pam_securetty.so

75

Administration système et réseaux


modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
type contrôle module arguments
(<module interface> <control flag> <module name> <module arguments>)
Les comportements des modules
Tous les modules PAM génèrent un résultat de réussite ou d'échec lorsqu'ils sont appelés. Les
indicateurs de contrôle indiquent à PAM ce qu'il faut faire avec le résultat. Les modules peuvent
être empilés dans un ordre particulier et les indicateurs de contrôle déterminent l'importance
du succès ou de l'échec d'un module particulier pour l'objectif global d'authentification de
l'utilisateur auprès du service. Il existe quatre indicateurs de contrôle prédéfinis :
[Link] : Le résultat du module doit être réussi pour que l'authentification se poursuive. Si le
test échoue à ce stade, l'utilisateur n'en est pas informé tant que les résultats de tous les tests
de module faisant référence à cette interface ne sont pas terminés.
[Link] : Le résultat du module doit être réussi pour que l'authentification se poursuive.
Cependant, si un test échoue à ce stade, l'utilisateur est immédiatement notifié avec un
message reflétant le premier test de module requis échoué.
[Link] : Le résultat du module est ignoré en cas d'échec. Cependant, si le résultat d'un
module signalé comme suffisant est réussi et qu'aucun module précédent signalé comme
requis n'a échoué, alors aucun autre résultat n'est requis et l'utilisateur est authentifié auprès
du service.
[Link] : Le résultat du module est ignoré. Un module marqué comme optional (facultatif) ne
devient nécessaire pour une authentification réussie que lorsqu'aucun autre module ne fait
76
référence à l'interface.

38
Administration système et réseaux
modules d'authentification enfichables (PAM)
Format d’un fichier de /etc/pam.d
(<module interface> <control flag> <module name> <module arguments>)
Nom de module
Le nom de module donne à PAM le nom du module enfichable contenant l'interface de
module spécifiée. Le format normalisé est : pam_service.so, où service représente le nom
courant du module. (pam_permit.so; pam_deny.so; …)
Arguments des modules
PAM utilise des arguments pour transmettre des informations à un module enfichable lors du
processus d'authentification de certains modules.
Par exemple, le module pam_userdb.so utilise des indications secrètes stockées dans un
fichier de la base de données Berkeley pour authentifier les utilisateurs. La base de données
Berkeley est une base de données Open Source intégrée dans de nombreuses applications. Le
module nécessite un argument db pour spécifier à la base de données Berkeley quelle base de
données précise doit être utilisée pour le service demandé.
Une ligne pam_userdb.so typique d'un fichier de configuration PAM ressemble à l'extrait
suivant : auth required pam_userdb.so db=<path-to-file>
Dans l'exemple précédent, remplacez <chemin-au-fichier> par le chemin d'accès complet au
fichier de la base de données Berkeley DB.
Les arguments non-valides ne sont pas pris en compte et n'ont aucune incidence sur la
réussite ou l'échec du module PAM. Toutefois, la plupart des modules rapporteront une erreur
dans le fichier /var/log/messages. 77

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Autre Exemples de fichiers de configuration PAM
Ci-dessous figure quelques exemples des fichiers de configuration PAM :

/etc/pam.d/common-auth:

78

39
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Exemples de fichiers de configuration PAM
Ci-dessous figure quelques exemples des fichiers de configuration PAM :
/etc/pam.d/common-account:

/etc/pam.d/common-password:

79

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Exemples de fichiers de configuration PAM
Ci-dessous figure quelques exemples des fichiers de configuration PAM :
/etc/pam.d/common-session:

/etc/pam.d/common-session-noninteractive:

80

40
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Exemples de fichiers de configuration PAM
Dans chacun des trois premiers cas, selon la réponse du module pam_unix.so, le deuxième
module, pam_deny.so, sera ignoré ou non. Si c'est le cas, le prochain et dernier module à
traiter sera pam_permit.so, qui autorise toujours l'accès. S'il n'est pas ignoré, non seulement
pam_deny.so refusera l'accès, mais en raison de la directive requise, le contrôle sera
immédiatement rendu à l'application avant que pam_permit.so ne soit jamais atteint.

Pour plus d’informations (les deux derniers arguments,…), veuillez consulter :


[Link]

81

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Architecture PAM : Synthèse

82

41
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
NSS : Définition et fonctionnalités
NSS ( Name Service Switch) : est une fonction dans les systèmes d'exploitation Unix/Linux
qui fournit une variété de sources pour les bases de données de configuration courantes et les mécanismes
de résolution de noms.
Elle fournit les bases de données que le système d'exploitation et les applications utilisent pour
découvrir des informations comme les noms d'hôtes; les attributs d'utilisateur comme le répertoire
personnel, le groupe principal et le shell de connexion ; ….
Ces bases de données sources incluent des fichiers de système d'exploitation locaux, par
exemple, /etc/passwd, /etc/group et /etc/hosts, le système de noms de domaine (DNS), le service
d'information réseau (NIS), LDAP et autres.
NSS a pour objet de normaliser la résolution de noms au sein d’un système. NSS permet de résoudre un
nom en une autre information associée, comme par exemple un nom d’utilisateur et son uid, un nom de
groupe et son gid, ou encore un nom d’hôte et son adresse IP.
Sun Microsystems a d'abord développé NSS pour son système d'exploitation Solaris, mais par la suite les
programmeurs l'ont porté sur de nombreux autres systèmes d'exploitation, notamment FreeBSD, NetBSD,
GNU/Linux, HP-UX, IRIX et AIX.
NSS est un mécanisme complémentaire au PAM. Semblable à PAM, NSS est configurable et utilise des
modules afin d'interagir avec différents types de fournisseurs.
NSS Fait partie du système d'exploitation (par défaut) : « bibliothèque C ».
83
Remarque : NSS ne fournit pas d'authentification.

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
NSS : Définition et fonctionnalités
Name Service Switch : [Link]
NSS est habituellement configuré à l’aide du fichier /etc/[Link]. Celui-ci liste les « bases
de données » (par exemple group, passwd, …) et une ou plusieurs façons d’obtenir
l’information (par ex. : files pour les fichiers locaux, nis pour le Network Information Service,
nisplus pour NIS+, ldap pour le protocole LDAP, ou encore mysql pour une base de données
MySQL).
Le fichier /etc/[Link] détermine pour différents types de résolutions la source
d’information à privilégier, et les applications ayant besoin de ces informations vont
consulter les sources dans l’ordre imposé par le fichier [Link].
La résolution s’appuie sur des bibliothèques NSS (libnss_X.so où X représente le service de
résolution employé), et les applications n’ont pas besoin de connaître directement la
méthode de résolution employée.
Le Name Service Switch (NSS) autorise le remplacement des traditionnels fichiers Unix de
configuration (par exemple /etc/passwd, /etc/group, /etc/hosts) par une ou plusieurs bases de
données centralisées, les mécanismes utilisés pour accéder à ces bases étant configurables.

84

42
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
NSS : Définition et fonctionnalités
NSS: Name Service Switch
Il unifie la traduction/mapping entre les identifiants numériques (uid, gid, ip...) et les
noms (username, groupname, domainname...).

Login : Sim2022

85

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Name Service Switch : [Link]+ LDAP
Les informations telles que les noms d'utilisateurs, groupes et autres, stockées dans des
fichiers situés dans /etc/, vont être fournies grâce à NSS (Name Service Switch) à l'aide du
serveur LDAP du module Scribe.
les bases de données gérer par un serveur LDAP :
• networks (informations concernant le réseau) ;
• passwd (comptes des utilisateurs) ;
• protocols (protocoles réseau) ;
• rpc (base de données des numéros de programmes rpc) ;
• services (liste des services réseau Internet) ;
• shadow (informations sécurisées sur les comptes utilisateurs).
Les données gérer dans l'annuaire LDAP sont :
• passwd (comptes des utilisateurs) ;
• group (groupes d'utilisateurs) ;
• shadow (informations sécurisées sur les comptes utilisateurs).
Il existe actuellement deux paquets disponibles pour configurer les requêtes NSS via LDAP :
• libnss-ldap : plus mature mais plus complexe, libnss-ldap a quelques problèmes connus
au démarrage
• libnss-ldapd : plus simple, amélioré, mais moins mature 86

43
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
NSS: Name Service Switch
Fichiers de configuration : /etc/[Link] :
Définissez l'ordre des requêtes (de gauche à droite) parmi les méthodes
d'identification possibles par la bibliothèque GNU C :
types de recherche

87

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
NSS: Name Service Switch
Fichiers de configuration : /etc/[Link] :
Définissez l'ordre des requêtes (De gauche à droite) parmi les méthodes
d'identification possibles par la bibliothèque GNU C :

88

44
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
NSS + LDAP: identification User/group
Pour activer l'identification des utilisateurs/groupes LDAP dans le
système, l'intégration entre NSS et LDAP est nécessaire :
L'administrateur système doit installer le package libnss-ldap :
• Connecteur NSS--LDAP.
• Suite de bibliothèques et d'outils.
Cela nous permet donc :
• identification des utilisateurs, groupes, hosts, services…
• Mapping entre les identifiants numériques (Uid, gid, ip...) et
les noms (Username, groupname, domainname...).
• $ id <username>.
• $ getent shadow.
Installation de libnss-ldap :
• $ apt-get install libnss-ldap

89

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
NSS + LDAP: identification User/group
Configuration du NSS pour LDAP : configuration des éléments importante :
• root@debian:∼ ∼#vi /etc/[Link] (vi est un éditeur de texte installé dans
toutes les installations de Unix/linux)
hôte : nom d'hôte/IP du serveur LDAP :
• (*) Si vous utilisez SSL (slapds), il est très important que ce soit le "nom
commun" utilisé dans le certificat SSL.
base : "nom distinctif" (DN) ou suffixe LDAP (racine) pour le DIT coopératif.
port : port LDAP.
URI (Uniform Resource Identifier): il établit l'ID réseau du serveur LDAP :
• uri ldap://[Link]
rootbinddn: il définit le « DN » de l'administrateur pour la base de données LDAP :
• rootbinddn: cn=admin,dc=localdomain
SSL/TLS options:
• TLS_CACERT : CHEMIN vers le certificat CA.
• TLS_CERT : CHEMIN vers le certificat de service.
• TLS_KEY : CHEMIN vers la clé de certificat de service TLS_CERT.
• TLS_REQCERT : il définit le mécanisme à utiliser pour serrer le certificat
90

45
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
PAM + LDAP: User authentication
Pour activer l'authentification LDAP dans le système, l'intégration entre PAM et
LDAP est nécessaire :
L'administrateur système Sysadmin doit installer le package libpam-ldap :
• Connecteur PAM-LDAP.
• Suite de bibliothèques et d'outils.
il permet aux applications et aux services d'utiliser LDAP pour l'authentification des
utilisateurs :
Chaque service qui utilise PAM pourra utiliser LDAP comme base de données
d'authentification :
• sshd, login…
… C'est pour ajouter (connecter) LDAP à PAM comme mécanisme d'authentification :
• pam_ldap.so.
Installation du libpam-ldap:
• root@debian:∼ ∼# apt-get install libpam-ldap

91

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
PAM + LDAP: User authentication
Configuration:
root@debian:∼ ∼# vi /etc/pam_ldap.conf
Ce fichier utilise les mêmes éléments de configuration que
libnss--ldap :
• Les deux ont généralement le même contenu.

Utilisez dpkg-reconfigure pour configurer à la fois libnss-ldap et


libpam-ldap :
•root@debian:∼∼# dpkg-reconfigure libnss-ldap
•root@debian:∼∼# dpkg-reconfigure libpam-ldap

Pour plus de détails sur la Configuration de NSS/PAM (PAM avec pam_ldap) pour une authentification via un
LDAP, veuillez consulter les lien suivants:
[Link]
[Link] 92

46
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
PAM + NSS: Synthèse

93

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
PAM: Authentification PAM / LDAP
L'authentification sur les postes clients Unix/Linux se baser sur :
• la bibliothèque générique NSS de résolution de nom, qui permet :
• d'authentifier les utilisateurs via le LDAP ;
• d'obtenir les informations des utilisateurs à travers le LDAP.
• nslcd est utilisé pour lier l’authentification LDAP et de récupérer ses
informations
• nslcd est un démon qui va faire des requêtes LDAP pour les processus locaux
qui veulent faire utilisateur, groupe et autres recherches de nommage (NSS)
ou de faire l'authentification des utilisateurs, d'autorisation ou de
modification de mot de passe (PAM)
• nscd qui fera un cache et vous évitera des problèmes liés à la performance et
au coupure du réseau.

94

47
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : processus linux
Un processus linux est un programme en action qui s’exécute en
mémoire et dans le processeur de votre ordinateur.
Il y a deux catégories de processus:
1. Le processus utilisateur (process user) et,
2. le processus système généralement appelé processus démon
(daemon process).
Les processus utilisateurs ce sont des processus qui sont créés par un
utilisateur particulier.

Par exemple le premier processus lancé


par un utilisateur en se connectant à un
terminal est le processus bash.
95

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : processus démon
Les processus systèmes (daemon process) ce sont des processus qui sont créés lors du
lancement du système ou à une date fixée par un sysadmin.
On peut prendre le processus init comme exemple, c’est le premier processus lancé
par le noyau linux lors du lancement.
•La commande ps –aux Afficher la liste de tous les processus en cours d’exécution
(Processus utilisateur et démon)

96

48
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : processus démon
La commande ps –x Afficher la liste des processus systèmes (démon)

97

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : processus démon
La commande pstree Afficher les processus sous forme
d’arborescence tout en affichant leur lien de parenté

98

49
Administration système et réseaux
Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : processus démon dans Windows
Dans Windows, les démons sont appelés services .

99

Administration système et réseaux


Gestion des utilisateurs sous Unix/Linux
Authentification PAM / LDAP : getent
Commandes Linux : getent (voir [Link]
La commande getent affiche les entrées des bases de données prises en charge par
les bibliothèques du Name Service Switch (NSS), qui sont configurées dans
/etc/[Link].
La base_de_données peut être n’importe laquelle des suivantes, prises en charge
par la bibliothèque C de GNU :
• Ahosts
• aliases
• Group
•…
Afficher les entrées de la base de données hosts
getent hosts

100

50
Administration système et réseaux

Protocole AAA

101

Administration système et réseaux


Architecture du système Unix/Linux
Protocole AAA
Un protocole d’authentification est un moyen de contrôle d’accès
caractérisé par les 3 A (AAA) qui signifient Authentication,
Authorization, Accounting, soit authentication, autorisation et compte.
AAA est un protocole qui permet de gérer :
1. Authentication : consiste à vérifier qu’une personne/équipement est
bien celle qu’elle prétend être. cela ce fait grâce à une
authentification nom d’utilisateur/ mot de passe, ou grâce à un
certificat.
2. Autorisation : consiste à déterminer les droits de l’utilisateur sur les
différentes ressources et et les opérations qu’il va être en mesure
d’effectuer.
3. Accounting (gestion des comptes) : concerne les données et les
informations se rapportant au profil de l’utilisateur. 102

51
Administration système et réseaux
Méthodes d'authentification Linux
Basées sur le Protocole AAA

Il existe plusieurs méthodes d'authentification Linux (authentification


réseau aussi), basées sur le protocole AAA, chacun suivant son propre
ensemble de règles sur la manière de gérer les données des
utilisateurs.
Les mieux mis en œuvre en authentification Linux sont Kerberos et
Diameter, chacun ayant ses propres avantages et inconvénients.

103

Administration système et réseaux


Méthodes d'authentification Linux
Basées sur le Protocole AAA : Kerberos

Kerberos est un protocole d'authentification qui repose sur un


mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de
tickets, et non de mots de passe en clair, évitant ainsi le risque
d'interception frauduleuse des mots de passe des utilisateurs.
Créé au Massachusetts Institute of Technology, il porte le nom grec de
Cerbère, gardien des Enfers.
Kerberos est un protocole d'authentification réseau aussi, mais
Kerberos a d'abord été mis en œuvre sur des systèmes Unix.

104

52
Administration système et réseaux
Méthodes d'authentification Linux basées sur AAA
Kerberos : Fonctionnement

105

Administration système et réseaux


Méthodes d'authentification Linux basées sur AAA
Kerberos : Fonctionnement

106

53
Administration système et réseaux
Méthodes d'authentification Linux basées sur AAA
Kerberos : Fonctionnement
Utilisations
L'identification Kerberos peut être utilisée par ces
protocoles/applications :
• OpenSSH, PAM
• Apache, Samba, MacOS
Implémentations
Il existe plusieurs implémentations libre ou propriétaire du protocole
Kerberos.
L'implémentation propriétaire la plus courante est la version de
Microsoft Kerberos v5 intégré à Active Directory.
Les principales implémentations libres sont les suivantes :
MIT Krb5, Heimdal, GNU Shishi
La version MIT Kerberos est choisie par les distributions Linux.
107

Administration système et réseaux


Méthodes d'authentification Linux basées sur AAA
Diameter
Le protocole Diameter est un protocole utilisé par les applications informatiques en réseau
pour activer l'authentification utilisateur sécurisée , d'autorisation et de comptabilité (AAA ).
Diameter est un protocole applicatif permettant de décrire des associations clefs-valeurs, de
manière extensible.
Diamètre née d'une norme précédente , le protocole RADIUS , pour faire face aux mécanismes
de contrôle d'accès plus complexes et une sécurité accrue exigée par la génération actuelle
d'appareils mobiles IP et les réseaux sans fil. RADIUS (Remote Dial-in User Service
Authentication ) était insuffisant pour faire face aux nouvelles exigences.
Il est notamment utilisé dans le cœur des réseaux de téléphonie mobile 4G/LTE pour faire
communiquer les différents équipements du cœur de réseau, tel que le HSS, le MME ou le
PCRF.
À l'origine, il est conçu pour faire de l'authentification, et succéder au protocole RADIUS. Ses
objectifs, qui définissent les pré-requis minimums nécessaires pour un protocole AAA, sont
initialement décrits par la RFC 35882 puis étendus par la RFC 57193, avant que la RFC 67334
ne rende ces dernières définitions caduques. 108

54
Administration système et réseaux
Méthodes d'authentification Linux basées sur AAA
Diameter
Au fond, le protocole Diameter est sur l'échange de message. Le diamètre est réalisé sous
la forme d'une architecture pair- à-pair , où chaque noeud peut être un client, le
serveur ou l'agent . Les agents de relais des messages entre les clients et les serveurs.
Un message de diamètre est l'unité de base utilisée pour envoyer des commandes ou
envoyer des notifications à d'autres nœuds.
Diamètre gère l'authentification et l'autorisation par voie de passage de messages
généralisée qui est personnalisé par l'application utilisée . De cette façon , diamètre
permet aux applications individuelles pour exécuter des fonctions applicables à leur
utilisation .
Messages comptables sont plus bien définie que les messages d'authentification , et sont
traités comme tels par le protocole.
Pour plus d’informations, merci de consulter:
[Link]
[Link]
[Link] 109

Administration système et réseaux

Technique de compilation du noyau

110

55
Administration système et réseaux
Technique de compilation du noyau

[Link]’est ce qu’un noyau ?


[Link] compiler un noyau ?
[Link] du noyau

111

Administration système et réseaux


Technique de compilation du noyau
Qu’est ce qu’un noyau ?
Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé
dans plusieurs systèmes d'exploitation dont notamment GNU/Linux et Android. Le
noyau Linux est développé essentiellement en langage C par des milliers de
bénévoles et salariés collaborant sur Internet.
Le noyau est le cœur du système, c'est lui qui s'occupe de fournir aux logiciels une
interface de programmation pour utiliser le matériel.
Initialement conçu pour l'architecture de processeur x86, il a ensuite été porté sur
de nombreuses autres, dont PowerPC, ARM, SPARC, MIPS, …
Il s'utilise dans une très large gamme de matériel, des systèmes embarqués aux
superordinateurs, en passant par les téléphones mobiles et ordinateurs personnels.
Ses caractéristiques principales sont d'être multitâche et multi-utilisateur. Il
respecte les normes POSIX.

112

56
Administration système et réseaux
Technique de compilation du noyau
Qu’est ce qu’un noyau ?
Au début de son histoire le développement du noyau Linux était assuré par des développeurs
bénévoles, alors que aujourd'hui en plus des bénévoles il participent aussi des entreprises,
comme Red Hat, Novell, IBM (IBM possédait son propre UNIX, nommé AIX), ou Intel.
Rythme de développement :
Entre mars et avril 2005, le nombre de lignes de code a doublé (de 4,4 millions à 8,8 millions).
Début 2009, la version 2.6.30 du noyau linux est composée de plus de 11,5 millions de lignes
de code dans 28 000 fichiers, alors que 2,8 millions de lignes ont été ajoutées entre Noël 2008
et janvier 2010.
Entre 2005 et mi-2009, 5 000 développeurs et 500 entreprises ont participé à l'écriture du
noyau. Le nombre de patchs proposé est en augmentation, notamment depuis la version
2.6.25
Processus de développement : le processus de développement de Linux est public
sur Internet : les sources du noyau y sont visibles par tous, les modifications de ces
sources sont publiées et revues sur Internet et sont également visibles de tous. Un
cycle de développement incrémental et rapide a été adopté depuis le début
(aujourd'hui une nouvelle version est publiée toutes les 9 semaines environ).
Le code source du noyau Linux est disponible sur le site [Link]

Administration système et réseaux


Technique de compilation du noyau
Philosophie et caractéristique d’UNIX/Linux
Un ensemble de règles assurent le fonctionnement et le succès
d’UNIX/Linux, à commencer par le fameux paradigme tout est
fichier.
Toutes les fonctionnalités du système d’exploitation sont accessibles
via des simples fichiers : Périphériques, processus, répertoires, les
pipes, la mémoire, etc…
Par conséquent, pour qu'une application puisse communiquer avec le
système, il suffit qu’elle soit capable de lire et écrire dans un
fichier.

114

57
Administration système et réseaux
Technique de compilation du noyau
Qu’est ce qu’un noyau ?

APPLICATION

SHELL

KERNEL

BIOS

115

Administration système et réseaux


Technique de compilation du noyau
Composants du noyau Linux

Le noyau gère les taches de base du système tels que la gestion des processus
système; la gestion des processus utilisateurs; la gestion du processeur et de la RAM
et la gestion des systèmes de fichiers… 116

58
Administration système et réseaux
Technique de compilation du noyau
Nature du noyau
• Un noyau est un ensemble des fichiers écrits en c/c++.
• Compiler un noyau génère les fichiers binaires (langage de la machine).

117

Administration système et réseaux


Technique de compilation du noyau
Pourquoi compiler un noyau ?
• Comme tous les programmes informatiques, le noyau Linux est écrit sous forme de
code source, et doit être transformé en binaire exécutable pour être compris par le
microprocesseur.
• Dans la mesure où le code source du noyau Linux contient une très grande quantité
de fonctionnalités, l'utilisateur peut choisir de n'intégrer que celles qui lui sont
utiles ou les mieux adaptées (c'est l'étape de configuration du noyau).
• La compilation permet d'adapter le noyau à des besoins spécifiques comme le
support de matériels peu répandus, l'activation de fonctionnalités expérimentales
ou l'adaptation à des plateformes particulières comme des systèmes embarqués.
Remarque :
• La grande majorité des distributions GNU/Linux installent un noyau compilé
préalablement qui répond aux besoins des postes de travail et serveurs.
Il est donc rare qu'un utilisateur de Linux ait à compiler un noyau.
118

59
Administration système et réseaux
Technique de compilation du noyau
Pourquoi compiler un noyau ?
• Comprendre comment fonctionne le noyau Linux ;
• Faire fonctionner un matériel qui n'est pas pris en charge
par votre noyau actuel ;
• Appliquer un correctif ;
• Vous voulez utiliser une distribution qui oblige de compiler
votre noyau ;
• Avoir des connaissances sur les noyaux ;

119

Administration système et réseaux


Technique de compilation du noyau
Quel noyau choisir ?
• Choisir la version du noyau la plus stable.
• La version qui n’applique pas des changement dans le fond.
• Ex : la version la plus stable de noyau linux est : linux 5.16.16 daté
du 19 Mars 2022.
• La dernière version est :

120

60
Administration système et réseaux
Technique de compilation du noyau
Numérotation des noyaux : Ex : linux 4.19.189
Les numéros de version du noyau sont composés de plusieurs nombres.
Le noyau Linux se présente sous la forme de versions et de branches.
La version majeure (ou branche) est indiquée par les deux premiers nombres, pris dans leur
ensemble.
patchs de correction de bogues, de sécurité ou d'optimisation sont indiquées par un
quatrième nombre de version, par exemple [Link] ou [Link]. Le fonctionnement
technique et organisationnel de cette branche sera éprouvé avec le temps, sur le moyen et
long terme. Pour plus d’information veuillez consulter
[Link]

4 . 19 . 189

numéro de la branche La version noyau

121

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Installation des outils Configuration du
de compilation noyau
étape étape
02 04

étape étape
01 Obtenir le noyau
03 Lancement de
à compiler compilation

122

61
Administration système et réseaux
Technique de compilation du noyau

Compilation du noyau
Version courante du noyau
La commande uname permet de connaître la version courante du
noyau, mais aussi le type d’architecture et le nom de l’ordinateur.

123

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Installation des outils de compilation
• Installer les mises à jour et d’autres outils

124

62
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
Installation des outils de compilation, de développement, etc.

gcc : le compilateur de language c.


libncurses5-dev : c’est un paquet fournit les fichiers d'en-têtes, les bibliothèques statiques et
les liens symboliques nécessaires au développement avec ncurses( la bibliothèque ncurses
constituent une méthode indépendante du terminal pour rafraîchir les écrans en mode texte
avec une bonne optimisation.)
dpkg-dev :Ce paquet contient les outils de développement (y compris dpkg-source)
nécessaires pour dépaqueter, compiler et téléverser des paquets sources
build-essential : ce paquet contient une liste informative des paquets qui sont considérés
essentiels pour construire des paquets d’une distribution linux.
rsync :est un logiciel libre de synchronisation de fichiers.
libssl-dev :C’est un paquet fait partie de l'implémentation du projet SSL des protocoles
cryptographiques SSL et TLS pour communiquer de façon sécurisée sur internet. Ce paquet
fournit les bibliothèques de développement, les fichiers d'en-tête et les pages de manuel
pour libssl et libcrypto.
Libelf-dev :une bibliothèque partagée qui permet de lire et écrire des fichiers ELF à un niveau125
élevé. Ce paquet fournit les bibliothèques de développement et fichiers d'en-tête pour libelf

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Installation des outils de compilation, de développement, etc.

126

63
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
Installation des outils de compilation
• Installer d’autres outils

127

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler
• Installation du noyau à compiler
• Pour savoir la version du noyau courant on tape la commande :
uname –a et uname -sr

128

64
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler
• Installer la dernière version de noyau linux à partir de site [Link]

129

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler
• Installation du noyau à compiler
• Installer la dernière version de noyau linux à partir de site [Link]
Par commande : on utilise la commande wget -p plus le lien de téléchargement

130

65
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler
• On obtient un fichier compressé

131

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler

Extraire le fichier compressé par la commande: tar xvfJ [Link]

132

66
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
Obtenir le noyau à compiler
On liste le contenu de dossier kernel , on trouve le dossier décompressé qui porte le
nome de noyau

La taille du noyau décompressé (ici 1.3 Go)


On se positionne sur le répertoire créant et on utilise la commande du –sh pour avoir
la taille totale de noyau décompressée c’est 1,3 GO

133

Administration système et réseaux


Technique de compilation du noyau

Etape 03
Installation des outils Configuration du
de compilation noyau
étape étape
02 04

étape étape
01 Obtenir le noyau
03 Lancement de
à compiler compilation

134

67
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
• Configuration du noyau

L'étape la plus importante de la compilation d'un noyau personnalisée est la


configuration du noyau. Les options de configuration sont déclarées dans le
fichier .config, chacun correspond à une fonctionnalité du noyau, qu'on
décide d'utiliser ou non. Trois choix sont généralement possibles :
• Y : la fonctionnalité est compilée et implantée dans l'image du noyau
• M : la fonctionnalité est compilée comme module
• N : la fonctionnalité est ignorée

135

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
• Configuration du noyau

Il existe plusieurs outils pour régler la configuration :


make config : programme en mode texte qui énumère toutes les options et demande
d'entrer son choix
make menuconfig : utilitaire en mode texte écrit avec ncurses, il permet une
navigation plus aisée dans la configuration
make gconfig : outil graphique basé sur GTK+
make xconfig : outil graphique basé sur Qt
make defconfig : outil permettant de récupérer les paramètres de configuration par
défaut du noyau. Ces paramètres sont donnés par les développeurs du noyau à
chaque nouvelle sortie du noyau.
make olddefconfig : outil permettant de récupérer les paramètres de configuration
par défaut du noyau et de mettre les autres paramètres par défaut.
…. 136

68
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
• Configuration du noyau

•La compilation du noyau et des modules se fait par la commande make.


•Configurer noyau par la commande: make menuconfig

137

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
• Etape 3: Configuration du noyau

Ici on va déclarer les modules que nous souhaitons installer sur notre noyau. 138

69
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
• Configuration du noyau

• Récupérer les paramètres de configuration par défaut du noyau.

139

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau
• Lancement de compilation
• Lancer la compilation de noyau avec 2 coeurs

140

70
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau
• Lancement de compilation
• Lancer la compilation de noyau

Reboot

141

Administration système et réseaux


Technique de compilation du noyau
Compilation du noyau

• La nouvelle version du noyau


• Avant la compilation

142

71
Administration système et réseaux
Technique de compilation du noyau
Compilation du noyau

• La nouvelle version du noyau

• Après la compilation

143

Références Bibliographique

1. Linux - Administration système et exploitation des services réseau, Philippe BANQUET et Sébastien
BOBILLIER, Edition Eni, 2014
2. Autthenttiiffiicattiion Liinux // MacOSX , Emmanuel Blindauer, Direction Informatique, Université de
Strasbourg
3. José Ángel Herrero Velasco, “Computer System Design and Administration”, Department of Computer
and Electrical Engineering.
4. [Link]
5. [Link]
6. [Link]
7. [Link]
8. [Link]
9. [Link]
10. [Link]
11. [Link]
12. [Link]
13. [Link]
14. [Link]
AP
15. [Link]
16. [Link]
[Link]
17. [Link]
144

72
Références Bibliographique

18. [Link]
19. [Link]
g%C3%A9n%C3%A9ralit%C3%A9s
20. [Link]
source-8/
21. [Link]
22. [Link]
23. [Link]

145

73

Vous aimerez peut-être aussi