10 KiB
\newpage
Démarrer sur le SI du jour
Présentation du système d'information
Le système d'information que vous allez avoir à gérer aujourd'hui est très restreint, car il ne se compose que d'une seule machine !
Cette semaine, nous allons installer et configurer de nombreux services sur cette machine.
L'image ISO que vous avez récupérée met à votre disposition un système Debian minimaliste. Cette image s'occupe de faire le nécessaire pour démarrer le système, sans que vous ayez à réaliser une installation complète, qui est plus longue qu'intéressante. Néanmoins, si vous avez des interrogations au sujet de la manière dont une installation se fait, ou du fonctionnement du bootloader, n'hésitez pas à poser vos questions !
Accéder à la machine virtuelle
Une fois la machine virtuelle démarrée, vous pouvez vous y connecter en root
avec le mot de passe adlin2019
.
Vous pouvez également démarrer en mode single user, mais comme votre disque
n'est sans doute pas encore utilisable à ce stade, vous ne pourrez pas changer
le mot de passe root
. Vous pourrez néanmoins effectuer les étapes de
configuration du disque décrites plus loin, sous ce mode, puis redémarrer.
Lorsque vous avez accès à la ligne de commande du bootloader, vous pouvez
généralement ajouter l'option init=/bin/sh
à la ligne de commande du noyau,
afin de lancer un shell au lieu du système d'init habituel.
Configuration du système de fichiers
Système initial
L'image ISO sur laquelle votre machine virtuelle démarre va tenter de monter un OverlayFS avec la première partition du premier disque qu'il rencontre.
Vous ne pourrez pas apporter de modifications à votre système de fichiers tant que vous n'aurez pas démarré dans le mode "disque dur configuré".
Table des partitions
Si votre disque a fraîchement été créé, celui-ci ne contient encore aucune partition, il ne contient d'ailleurs pas même de table de partitions !
Pour éditer (ou créer ...) la table de partitions d'un disque, vous pouvez
utiliser les utilitaires fdisk
, cfdisk
, sfdisk
, parted
, gdisk
. Chacun
de ses programmes prend en argument le disque à modifier :
Le TP ne se concentrant pas sur la phase de démarrage, vous pouvez ignorer les choix de type de tables, de partitions, leurs drapeaux, les étiquettes, etc.
Assurez-vous de créer au moins deux partitions : la première occupera la majeure partie de votre disque, tandis que la deuxième peut se limiter à une centaine de MB, pour l'exercice.
Assurez-vous de bien lire tous les messages d'avertissements ! Il est important que vous comprenniez ce que vous faites à ce stade, car cela peut entraîner des pertes de données.
Système de fichiers
Les partitions sont maintenant créées, mais il n'est pas encore possible de les
utiliser telles-quelles. Afin de pouvoir les utiliser, il est d'abord nécessaire
de les formater. Linux supporte une grande variété de systèmes de fichiers,
chacun ayant des caractéristiques et des usages particuliers. Le système de
fichiers « généraliste » est l'Extended File System (ext
),
Durant la phase de formatage, les structures (telles que les tableaux d'inœuds,
le journal des transactions, etc. selon les caractéristiques du système de
fichiers) seront inscrites sur le disque. Un certain nombre d'en-têtes
référençant des pointeurs vers ces structures et autres particularités
éventuelles de la partition seront également inscrits. Il n'est à ce stade pas
nécessaire de mettre à zéro chaque secteur du disque ; il faut seulement
s'assurer d'initialiser les structures qui seront utilisées pour ne pas
récupérer de données aléatoires imprévisibles (notamment, le tableau d'inœuds
doit se terminer par une entrée NULL
, qui sera interprété comme une fin de
liste par le noyau).
Utilisez les utilitaires mkfs.X
(où X
est à remplacer par le système de
fichiers que vous avez choisi) pour formater vos partitions.
Partition d'échange
La swap (partition d'échange en français) est un espace du disque que l'on dédie pour étendre la mémoire vive du système. En cas de débordement, le système pourra choisir de placer sur le disque des pages dont il n'a pas besoin sur le moment. Les pages placées dans l'espace d'échange ne seront à nouveau utilisables que lorsque le noyau les aura replacées dans la RAM.
Encore de nos jours, où nos machines ont souvent beaucoup plus de RAM que ce dont le système aura jamais besoin, il reste important d'avoir une partition d'échange, à hauteur de 20 % de la quantité de mémoire disponible1.
Pour formater une partition d'échange, on utilise l'utilitaire mkswap
.
Montage automatique des partitions
Montage des partitions annexes
Automatique ne veut pas dire magique ! Pour chaque partition dont on dispose,
il va falloir indiquer dans le fichier /etc/fstab
l'emplacement dans
l'arborescence où attacher la partition ainsi que quelques autres
caractéristiques.
Notons que le montage des partitions est effectué par le système
d'initialisation (un simple appel à la commande mount -a
ou équivalent). À
aucun moment le noyau ne va lire le contenu de ce fichier.
Voir aussi : fstab(5)
Montage de la racine
Nous pouvons constater que nous avons indiqué dans ce fichier l'emplacement de notre partition racine. Mais ... le système d'init se trouvant sur cette partition racine, comment peut-il monter lui-même la partition sur laquelle se trouve son programme ?!
Parmi les dernières étapes de démarrage du noyau, juste avant le lancement du
programme se trouvant à l'emplacement /sbin/init
(ou surchargé par l'option
init=
), le noyau va monter la partition qui lui a été précisée dans l'option
root=
.
Vous l'aurez donc compris, afin de bénéficier d'un système utilisable, vous
allez devoir redémarrer et ajouter l'option root=/dev/sda1
à la ligne de
commande de votre noyau (ou choisir la ligne « avec disque configuré » !).
Persistance de la configuration réseau
Maintenant que notre système de fichiers n'est plus en lecture seul, vous allez pouvoir y apporter des modifications. Par exemple pour installer un client DHCP, afin de vous connecter au réseau facilement !
Deux solutions s'offrent à vous pour rendre persistant votre configuration réseau :
- éditer le fichier
/etc/network/interfaces
, en suivant les directives de la documentation Debian ; - éditer le fichier
/etc/systemd/network/50-dhcp.network
, en suivant les directives desystemd-networkd
.
À ce stade, vous devriez pouvoir redémarrer votre machine virtuelle et constater la présence d'une IP dans l'en-tête de bienvenue.
Se mettre à l'aise
Un serveur SSH est déjà installé et configuré pour vous permettre d'avoir une interface plus agréable que celle de votre hyperviseur.
Attention : si votre machine virtuelle est directement connectée au réseau
local (sans passer par un NAT), n'oubliez pas de modifier le mot de passe
root
pour éviter que n'importe qui sur le réseau local (et ayant accès à ce
TP), ne rentre sur votre machine.
Création d'un utilisateur
Une règle primordiale dans l'administration, c'est de ne jamais trop
travailler utiliser le compte root
directement ! quelque soit le sytème
d'exploitation.
Sur chaque machine, on crée donc autant de comptes utilisateurs, qu'il y aura de personnes susceptibles de s'y connecter pour l'administrer2.
Utilisez adduser(8)
pour vous créer votre propre compte, et au minimum
passwd(1)
pour lui définir un mot de passe.
C'est bon, vous pouvez maintenant commencer à utiliser le client SSH de votre choix pour administrer votre machine virtuelle !
su
-- Switch User
Mais comment faire des opérations d'administration, avec un simple compte utilisateur ?
La commande su -
permet de devenir root
, moyennant la connaissance du mot
de passe du compte root
. Notez l'option -
passée à la commande, cela permet
de réinitialiser l'environnement comme si l'on venait de se connecter en tant
que l'utilisateur cible.
Afin de simplifier les opérations d'administration, une suite de commandes
fournies par le paquet sudo
va devenir votre couteau suisse
d'administrateur. Utilisez :
sudo
: pour exécuter n'importe quelle commande, avec les privilèges administrateur ;sudoedit
: pour éditer un fichier avec les droits administrateurs.
Après avoir installé le paquet, vous devrez ajouter les utilisateurs autorisés
à se servir de sudo
dans le groupe sudo
ou wheel
(en fonction des
distributions). Vous pouvez également définir des conditions plus précise en
éditant le fichier /etc/sudoers
(utilisez impérativement visudo(1)
pour
éditer ce fichier).
Super astuce ! votre terminal rit encore de vous, affichant Permission Denied
car vous avez oublié de préfixer votre commande par sudo
? essayez :
Top confort dans son coquillage
Un shell brut de configuration, c'est souvent source d'erreur ! N'hésitez pas à
recopier votre configuration et à changer votre shell (chsh(1)
) pour vous
trouver dans un environnement plus amical !
On évitera toute configuration sur le compte root
, étant donné qu'il est
susceptible d'être utilisé en dernier recours lorsque plus rien ne fonctionne,
une configuration basique aura plus de chance de résister. De toute manière,
vous n'utiliserez jamais ce compte !
-
https://www.redhat.com/en/blog/do-we-really-need-swap-modern-systems ↩︎
-
non seulement cela évite d'exécuter n'importe quel script ou programme avec des privilèges lorsque ce n'est pas nécessaire, mais cela permet également de pouvoir retracer, via les journaux, qui a réalisé quelles opérations. ↩︎