
Arbre source du noyau Linux 4.1.15 avec des modifications liées à CVE-2017-1000371, une vulnérabilité locale d'élévation de privilèges. Fournit une base pour analyser et comprendre la faille.
Noyau Linux, version 4.x http://kernel.org/
Voici les notes de version pour Linux version 4. Lisez-les attentivement, car elles vous disent de quoi il s'agit, expliquent comment installer le noyau et que faire si quelque chose va de travers.
QU'EST-CE QUE LINUX ?
Linux est un clone du système d'exploitation Unix, écrit de zéro par Linus Torvalds avec l'aide d'une équipe informelle de développeurs à travers Internet. Il vise la conformité POSIX et Single UNIX Specification.
Il possède toutes les fonctionnalités que l'on attend d'un Unix moderne complet, notamment le vrai multitâche, la mémoire virtuelle, les bibliothèques partagées, le chargement à la demande, les exécutables partagés copy-on-write, une gestion de la mémoire correcte et une pile réseau multi-protocoles incluant IPv4 et IPv6.
Il est distribué sous la Licence Publique Générale GNU - voir le fichier COPYING accompagnant pour plus de détails.
SUR QUEL MATÉRIEL TOURNE-T-IL ?
Bien qu'originellement développé d'abord pour les PC 32 bits à base de x86 (386 ou plus), Linux tourne aujourd'hui aussi (au moins) sur les architectures Compaq Alpha AXP, Sun SPARC et UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS, Xtensa, Tilera TILE, AVR32 et Renesas M32R.
Linux est facilement portable vers la plupart des architectures généralistes 32 ou 64 bits tant qu'elles disposent d'une unité de gestion mémoire paginée (PMMU) et d'un port du compilateur GNU C (gcc) (faisant partie de la collection de compilateurs GNU, GCC). Linux a aussi été porté sur un certain nombre d'architectures sans PMMU, même si la fonctionnalité est alors évidemment quelque peu limitée.
Linux a également été porté sur lui-même. Vous pouvez maintenant exécuter le noyau en tant qu'application d'espace utilisateur - cela s'appelle UserMode Linux (UML).
DOCUMENTATION :
Il y a beaucoup de documentation disponible à la fois sous forme électronique sur Internet et dans des livres, à la fois spécifiques à Linux et concernant des questions UNIX générales. Je recommanderais de consulter les sous-répertoires de documentation sur n'importe quel site FTP Linux pour les livres LDP (Linux Documentation Project). Ce README n'est pas destiné à être une documentation sur le système : il existe de bien meilleures sources.
Il y a divers fichiers README dans le sous-répertoire Documentation/ : ils contiennent typiquement des notes d'installation spécifiques au noyau pour certains pilotes, par exemple. Voir Documentation/00-INDEX pour une liste de ce que contient chaque fichier. Veuillez lire le fichier Changes, car il contient des informations sur les problèmes qui peuvent résulter de la mise à niveau de votre noyau.
Le sous-répertoire Documentation/DocBook/ contient plusieurs guides pour les développeurs et utilisateurs du noyau. Ces guides peuvent être rendus dans un certain nombre de formats : PostScript (.ps), PDF, HTML et pages de manuel, entre autres. Après l'installation, « make psdocs », « make pdfdocs », « make htmldocs » ou « make mandocs » rendront la documentation dans le format demandé.
INSTALLATION des sources du noyau :
Si vous installez les sources complètes, placez l'archive tar du noyau dans un répertoire où vous avez les permissions (par ex. votre répertoire personnel) et décompressez-la :
xz -cd linux-4.X.tar.xz | tar xvf -
Remplacez « X » par le numéro de version du dernier noyau.
N'utilisez PAS la zone /usr/src/linux ! Cette zone contient un ensemble (généralement incomplet) d'en-têtes du noyau utilisés par les fichiers d'en-tête des bibliothèques. Ils doivent correspondre à la bibliothèque, et ne pas être perturbés par ce que le noyau du jour se trouve être.
Vous pouvez aussi passer d'une version 4.x à une autre par des correctifs. Les correctifs sont distribués au format xz. Pour installer par correctifs, procurez-vous tous les fichiers de correctifs plus récents, entrez dans le répertoire de niveau supérieur des sources du noyau (linux-4.X) et exécutez :
xz -cd ../patch-4.x.xz | patch -p1
Remplacez « x » pour toutes les versions supérieures à la version « X » de votre arbre de sources actuel, dans l'ordre, et tout devrait bien se passer. Vous voudrez peut-être supprimer les fichiers de sauvegarde (some-file-name~ ou some-file-name.orig), et assurez-vous qu'il n'y a pas de correctifs échoués (some-file-name# ou some-file-name.rej). S'il y en a, soit vous, soit moi avons fait une erreur.
Contrairement aux correctifs pour les noyaux 4.x, les correctifs pour les noyaux 4.x.y (aussi connus comme les noyaux -stable) ne sont pas incrémentaux mais s'appliquent directement au noyau de base 4.x. Par exemple, si votre noyau de base est 4.0 et que vous voulez appliquer le correctif 4.0.3, vous ne devez pas d'abord appliquer les correctifs 4.0.1 et 4.0.2. De même, si vous exécutez la version de noyau 4.0.2 et voulez passer à 4.0.3, vous devez d'abord inverser le correctif 4.0.2 (c'est-à- dire patch -R) avant d'appliquer le correctif 4.0.3. Vous pouvez en lire plus à ce sujet dans Documentation/applying-patches.txt
Alternativement, le script patch-kernel peut être utilisé pour automatiser ce processus. Il détermine la version actuelle du noyau et applique tous les correctifs trouvés.
linux/scripts/patch-kernel linux
Le premier argument de la commande ci-dessus est l'emplacement des sources du noyau. Les correctifs sont appliqués depuis le répertoire courant, mais un répertoire alternatif peut être spécifié comme second argument.
Assurez-vous de ne pas avoir de fichiers .o obsolètes ni de dépendances qui traînent :
cd linux make mrproper
Vous devriez maintenant avoir les sources correctement installées.
EXIGENCES LOGICIELLES
Compiler et exécuter les noyaux 4.x exige des versions à jour de divers paquets logiciels. Consultez Documentation/Changes pour les numéros de version minimum requis et comment obtenir des mises à jour pour ces paquets. Attention : utiliser des versions excessivement anciennes de ces paquets peut causer des erreurs indirectes très difficiles à retrouver, alors ne supposez pas que vous pouvez simplement mettre à jour les paquets quand des problèmes évidents surviennent pendant la construction ou le fonctionnement.
RÉPERTOIRE DE CONSTRUCTION pour le noyau :
Lors de la compilation du noyau, tous les fichiers de sortie seront par défaut stockés avec le code source du noyau. L'utilisation de l'option « make O=output/dir » vous permet de spécifier un endroit alternatif pour les fichiers de sortie (y compris .config). Exemple :
code source du noyau : /usr/src/linux-4.X
répertoire de construction : /home/name/build/kernel
Pour configurer et construire le noyau, utilisez :
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install
Veuillez noter : si l'option 'O=output/dir' est utilisée, elle doit être utilisée pour toutes les invocations de make.
CONFIGURATION du noyau :
Ne sautez pas cette étape même si vous ne faites que mettre à niveau une version mineure. De nouvelles options de configuration sont ajoutées à chaque version, et des problèmes bizarres apparaîtront si les fichiers de configuration ne sont pas configurés comme prévu. Si vous voulez reporter votre configuration existante vers une nouvelle version avec un minimum de travail, utilisez « make oldconfig », qui ne vous demandera que les réponses aux nouvelles questions.
Les commandes de configuration alternatives sont :
"make config" Interface en texte simple.