OldGentooWiki:Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 4
De Gentoo-Quebec.
Sommaire |
Introduction
Le système de base étant paramétré et configuré (voir Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 3), il est à présent temps d'installer quelques paquets supplémentaires et de s'intéresser au noyau et au chargeur Grub. Cette partie couvre également l'ajout d'étapes au processus de démarrage de la machine.
Installation des paquets supplémentaires
syslog-ng, vixie-cron et logrotate
Un certain nombre de démons ne fonctionnent pas correctement ou ne fonctionnent pas tout court si un démon de journalisation système n'est pas lancé ! Syslog-ng est ici utilisé mais d'autres alternatives existent.
Pour le moment la configuration de chacun ne sera pas modifiée. Reste à les lancer (noter que logrotate n'est pas un démon mais un travail que Cron va lancer périodiquement) :
Outils Gentoo/Funtoo pratiques
Parmi quelques paquets fort utiles et décrits dans l'article Funtoo, il est conseillé d'installer les suivants :
- app-portage/eix : Ce paquet déploie quelques logiciels additionnels dont eix (recherche rapide) et eix-sync (synchronisation de la base de données d'eix avec celle de Portage)
- app-portage/gentoolkit : divers logiciels comme comme equery, euse, eclean....
- app-portage/genlop : installe le logiciel genlop qui produit diverses informations en examinant les journaux produits par Portage (ex. déterminer le temps pris pour la compilation d'un paquet)
Il n'est pas nécessaire ni utile d'installer genkernel hormis si vous comptez vous servir d'images initrd pour le noyau. Dans l'énorme majorité des cas de figure, il n'y aucune raison de se servir de telles images (voir la partie 5 de ce tutoriel).
Reste à lancer eix-update afin de rafraîchir la base de données d'eix qui est stockée dans /var/lib/eix :
Grub
Funtoo propose les deux versions de Grub :
- Grub version 0.9x bien connu depuis de nombreuses années. Une de ses limitations est qu'il lui est impossible de lire des fichiers depuis des systèmes de fihciers récents tel que ext4 ou btrfs. C'est pour cette raison qu'il faut placer /boot sur une partition séparée qui utilise un système de fichier connu de Grub 0.9x (ext2/3, xfs, reiserfs....)
- Grub 2 version 1.9x qui est fourni à présent avec de nombreuses distributions bien connues (ex. Ubuntu). Cette version circonvient à un certain nombre de limites de Grub 0.9x dont la possibilité de lire des fichiers situé sur des partitions ext4 et btrfs.
Autant avoir intallé eix, autant s'en servir et rechercher quels sont les paquets existants s'appelant Grub.
A date d'écriture de ce tutoriel, Grub est proposé sous la forme de deux paquets distincts non-slottés :
- sys-boot/grub-legacy : Version 0.9x de Grub
- sys-boot/grub : Version 1.9x de Grub (Grub 2) <- c'est ce paquet qui sera utilisé dans le présent tutoriel
C'est tout pour Grub qui sera configuré dans la prochaine partie du tutoriel. Un oeil attentif remarquera d'ailleurs que boot-update est lui aussi installé par dépendance !
Noyau
Étape suivante : installer le code source du noyau GNU/Linux. Le nom du paquet n'est pas vraiment intuitif au premier abord étant donné qu'il ne s'appelle pas kernel ou linux... mais... gentoo-sources !
Reste à installer !
Il n'y presque aucune différence entre ce que déploie le paquet gentoo-sources et le noyau GNU/Linux vanille tel que disponible sur le site web kernel.org (à quelques patches près)
Noter au passage que le lien symbolique /usr/src/linux a été créé vers le répertoire de la version adéquate du code source du noyau GNU/Linux. Il est possible de vérifier quel noyau est pointé par /usr/src/linux au travers de la commande eselect (option list du module kernel d'eselect) ou en utilisant un simple ls -l :
OU
C'est tout pour le moment en ce qui concerne le noyau qui sera configuré puis compilé dans la prochaine partie du tutoriel.
Ajouts des étapes au processus de démarrage
Il est grand temps d'ajuster ce qui sera lancé automatiquement lors du démarrage de la machine par OpenRC qui est, pour le décrire grossièrement, un ensemble de scripts shell (résidant dans le répertoire /etc/init.d) s'occuppant d'effectuer automatiquement un certains nombre d'opérations au démarrage et à l'arrêt de la machine comme par exemple le montage ou le démontage de partitions, la synchronisation de l'horloge système, la configuration des interfaces réseau ou encore le lancement des démons (syslog-ng, vixe-cron...). IL est également bon de savoir que les différents scripts gèrent automatiquement leurs interdépendances.
Lors du démarrage de la machine, OpenRC considère trois catégories de scripts à lancer :
- sysinit : scripts à exécuter en tout premier lieu, ne placez rien de plus dans cette catégorie !
- boot : tous les scripts de cette catégorie sont exécutés en deuxième lieu
- default : tous les scripts de cette catégorie sont exécutés en troisième lieu
Comment savoir quel script de /etc/init.d appartient à quel niveau de démarrage ? Réponse : l'outil rc-update qui permet non seulement d'afficher ce qui est actuellement lancé au démarrage mais également d'effectuer des ajouts/retraits. Pour commencer, voici la configuration telle existe à la base :
Il va falloir ajouter à la liste les scripts de démarrage des démons syslog-ng et vixie-cron ainsi que celui de l'interface réseau eth0 (référencé par le lien symbolique /etc/init.d/neif.eth0 créé dans la partie précédente du tutoriel). Tous ces scripts doivent être ajoutés au niveau boot sauf vixie-cron qui doit être placé au niveau default ce qui s'effectue par les commandes suivantes :
C'est tout pour le moment à ce niveau ! Nous aurons l'occasion d'ajouter des étapes supplémentaires par la suite lors de l'installation de Xorg.
Comptes usagers
Ne sautez pas cette étape (parfois oubliée dans la précipitation !), vous ne seriez pas en mesure d'ouvrir la moindre session par la suite.
Modification du mot de passe du super usager root
Les comptes usagers tant interactifs que des identités utilisées par certains services système sont définis dans deux fichiers :
- /etc/passwd : contient la liste de tous les comptes connus de la machine (lisible par tous les usagers)
- /etc/shadow : contient le mot de passe de chaque compte (accessible uniquement des usagers possédant les privilèges administratifs). Le mot de passe est stocké sous forme chiffrée dans le deuxième champ de chaque enregistrement. Noter que de simples caractères comme * ou ! ne peuvent jamais être le résultat d'un chiffrement et ont pour conséquence le refus systématique de tout mot de passe entré pour ce compte lors d'une tentative d'ouverture de sessions.
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/false daemon:x:2:2:daemon:/sbin:/bin/false adm:x:3:4:adm:/var/adm:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt news:x:9:13:news:/var/spool/news:/bin/false uucp:x:10:14:uucp:/var/spool/uucp:/bin/false operator:x:11:0:operator:/root:/bin/bash portage:x:250:250:portage:/var/tmp/portage:/bin/false nobody:x:65534:65534:nobody:/var/empty:/bin/false man:x:13:15:added by portage for man:/usr/share/man:/sbin/nologin sshd:x:22:22:added by portage for openssh:/var/empty:/sbin/nologin ldap:x:439:439:added by portage for openldap:/usr/lib/openldap:/sbin/nologin messagebus:x:101:249:added by portage for dbus:/dev/null:/sbin/nologin cron:x:16:16:added by portage for cronbase:/var/spool/cron:/sbin/nologin mail:x:8:12:added by portage for mailbase:/var/spool/mail:/sbin/nologin postmaster:x:14:248:added by portage for mailbase:/var/spool/mail:/sbin/nologin
root:*:10770:0::::: halt:*:9797:0::::: operator:*:9797:0::::: shutdown:*:9797:0::::: sync:*:9797:0::::: bin:*:9797:0::::: daemon:*:9797:0::::: adm:*:9797:0::::: lp:*:9797:0::::: mail:!:14806:::::: postmaster:!:14806:::::: news:*:9797:0::::: uucp:*:9797:0::::: games:*:9797:0::::: guest:*:9797:0::::: nobody:*:9797:0::::: man:!:14795:::::: sshd:!:14795:::::: ldap:!:14806:::::: messagebus:!:14806::::::
La consultation des fichiers /etc/passwd et surtout /etc/shadow de l'archive de stage 3 fournie par le projet Funtoo, montre que :
- Il n'y qu'un seul compte d'usager interactif : l'administrateur système ou root (les autres comptes sont utilisés pour les besoins du système)
- Que le le compte root est « désactivé » (présence de * dans le second champ de /etc/shadow).
Pour activer le compte root, il suffit simplement de lui définir un mot de passe par le biais de l'outil passwd et donc d'entrer la commande suivante :
Le mot de passe désiré et sa confirmation (refrappe du même mot de passe) seront alors demandés. Noter qu'il est parfaitement normal que rien ne s'affiche lorsque le mot de passe est entré et que les majuscules et les minuscules sont différenciées : MOTDEPASSE, MotDePasse et motdepasse sont trois mots de passes différents. Noter aussi que le chiffrement n'est pas fixe et dépend d'un salage (salt) : définir deux fois le même mot de passe conduit à deux résultats chiffrés différents.
Une bonne pratique dans la définition du mot de passe consiste à éviter tout mot du dictionnaire ou tout mot de passe facile à deviner comme nuage ou soleil1234... Mieux vaut opter pour quelque chose d'un peu plus solide comme *%Jg7tr*8K0Ft (bien évidemment ne mettez pas ce mot de passe établissez-en un de votre choix !). L'utilisateur root étant « seul Maître à bord du navire après Dieu », les conséquences d'un mot de passe compromis sont lourdes. Si un manque d'inspiration se fait sentir, l'outil pwgen peut venir à la rescousse ! pwgen n'est pas présent dans le stage 3 de Funtoo (et donc dans l'environnement chrooté) mais il l'est sur System Rescue CD. Pour l'utiliser, il faudra changer de console en appuyant sur Ctrl droit-Fn (ex. Ctrl droit-F4) puis le lancer :
Il est aussi possible d'installer le paquet app-admin/pwgen dans l'environnement chrooté :-)
Création du compte usager non-administratif
Il n'est pas recommandé d'utiliser continuellement l'usager administratif car une erreur est vite commise (combien d'administrateurs système ont vu leur système mourir après avoir fait une suppression accidentelle un peu trop agressive...) et tout logiciel lancé sous un compte administratif a plein pouvoirs sur la machine ce qui peut être un problème car des failles de sécurités sont loin d'être impossibles. Aussi, faut il créer un compte pour l'usage courant qui fera en sorte que les conséquences d'une erreur humaine ou d'un problème technique soient relativement limitées...
Bien qu'il existe des outils de base dans le stage 3 pour créer des comptes usagers, il existe un outil très convivial pour ce faire : superadduser. Qu'il faut commencer par installer :
Puis il suffit de lancer superadduser en lui donnant le login de l'usager à créer (ici user01). L'outil demandera une série de questions auxquelles les réponses par défaut (appui sur la touche Entrée) sont parfaitement acceptables. Il est conseillé de faire appartenir l'usager aux groupes suivants :
- wheel (sinon pas possible de faire de se servir de la commande su)
- cdrom (accès à /dev/sr?)
- usb (accès aux périphériques usb)
- video (accès aux périphériques de captures vidéo)
- audio (accès aux périphériques audio)
- games (jeux !) - Ne sera pas ajouté ici.
Ne rien spécifier comme date d'expiration du compte aura pour conséquence que le compte aura une validité permanente
C'est fini pour cet usager !
Fin de la quatrième partie
A l'issue de cette partie la machine n'est pas encore fonctionnelle car il faut installer le noyau ainsi que configurer le chargeur et rendre la machine amorçable depuis le disque dur. Pour ce faire, rendez-vous dans Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 5 !










