OldGentooWiki:Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 4

De Gentoo-Quebec.

Go-previous.png Installation


Gentoo-quebec+Funtoo-quebec.png

Installation d'une Funtoo dans une machine virtuelle VirtualBox - Partie 4


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

Warning 64.png
Attention !
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.
Gnome-dev-computer.png
# emerge syslog-ng vixie-cron logrotate
3 paquets de base.. Portage va installer en plus 4 dépendances

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

Gnome-dev-computer.png
# /etc/init.d/syslog-ng start
# /etc/init.d/vixie-cron start
Lancement de syslog-ng et de vixie-cron

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

Gnome-dev-computer.png
# emerge eix gentoolkit genlop
Quelques paquets supplémentaires

Reste à lancer eix-update afin de rafraîchir la base de données d'eix qui est stockée dans /var/lib/eix :

Gnome-dev-computer.png
# eix-update
Quelques paquets supplémentaires

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.

Gnome-dev-computer.png
# eix 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
Gnome-dev-computer.png
# emerge grub

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 !

Gnome-dev-computer.png
# eix gentoo-sources

Reste à installer !

Gnome-dev-computer.png
# emerge gentoo-sources
Info 64.png
Information !
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 :

Gnome-dev-computer.png
# eselect kernel list

OU

Gnome-dev-computer.png
# ls -l /usr/src
Vérification du répertoire pointé par /usr/src/linux. L'astérisque indique la version du noyau actuellement pointée par le lien symbolique /usr/src/linux

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 :

Gnome-dev-computer.png
# rc-update show

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 :

Gnome-dev-computer.png
# rc-update add syslog-ng boot
# rc-update add netif.eth0 boot
# rc-update add vixie-cron default
Syslog-ng, vixie-cron et la configuration de l,interface eth0 seront à présent lancés automatiquement au démarrage

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

Warning 64.png
Attention !
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.

/etc/passwd

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


/etc/shadow

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 :

Gnome-dev-computer.png
# passwd root
Définition (et redéfinition) du mot de passe pour l'usager root. Remarquer que les mots de passe entrés (identiques dans les deux cas) donnent des résultats différents après chiffrement.

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 :

Gnome-dev-computer.png
# pwgen
Info 64.png
Information !
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 :

Gnome-dev-computer.png
# emerge superadduser
Un autre outil bien pratique: superadduser

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.
Gnome-dev-computer.png
# superadduser user01
Info 64.png
Information !
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 !

Outils personnels