DESCRIPTION¶
L’unité systemd-firstboot.service est une des
unités qui sont utilisées pour initialiser la configuration de
la machine lors du « premier amorçage »,
c’est-à-dire lors d’une installation nouvelle ou
après une réinitialisation aux paramètres d'usine. Le
gestionnaire de systemd(1) initialise lui-même
machine-id(5) et prérègle toutes les unités, les
activant ou désactivant selon les réglages de
systemd.preset(5). systemd-firstboot.service est
démarré après pour initialiser de manière
interactive la configuration de base du système. Il est
démarré seulement si la condition
ConditionFirstBoot=yes est satisfaite, ce qui signifie
essentiellement que le répertoire /etc/ est vide (voir
systemd.unit(5) pour plus de détails). Les informations
d’identification peuvent être utilisées pour injecter
une configuration ; ces réglages ne sont pas demandés
de manière interactive.
La commande systemd-firstboot peut aussi être
utilisée pour initialiser de manière non interactive une image
de système hors-ligne.
Les réglages suivants peuvent être
configurés :
•l’ID de la machine ;
•la régionalisation du système, en
particulier les variables LANG et LC_MESSAGES ;
•le plan de codage du clavier du
système ;
•le fuseau horaire du
système ;
•le nom d’hôte du
système ;
•les étiquettes de la
machine ;
•la ligne de commande utilisée lors de
l’installation d’images du noyau ;
•le mot de passe et l’interpréteur
de commandes du superutilisateur (root).
Chacun des champs peut être passé de manière
interactive par les utilisateurs, défini de manière non
interactive sur la ligne de commande de l’outil ou copié
à partir d’un système hôte utilisé pour
configurer l’image du système.
Si un réglage est déjà initialisé, il
ne sera pas redéfini et l’utilisateur ne recevra pas
d’invite pour ce réglage.
Remarquez que cet outil opère directement sur le
système de fichiers et n’implique aucun service en cours du
système contrairement à localectl(1),
timedatectl(1) ou hostnamectl(1). Cela permet à
systemd-firstboot d’opérer sur une image de disque
montée, mais pas sur une image amorcée, et tôt lors du
processus d’amorçage. Il n’est pas recommandé
d’utiliser systemd-firstboot sur un système en
fonctionnement après qu’il a été
configuré.
OPTIONS¶
Les options suivantes sont comprises :
--root=root
Cette option prend comme argument un chemin de
répertoire. Tous les chemins doivent être préfixés
par le chemin
racine donné pour remplacement, y compris les
chemins de recherche de configuration. C’est utile pour opérer
sur une image de système montée sur le répertoire
spécifié au lieu du système hôte lui-même.
Ajouté dans la version 216.
--image=chemin
Cette option prend un chemin de fichier d’image de
disque ou de nœud de périphérique en mode bloc. Si elle
est spécifiée, toutes les opérations sont
effectuées dans le système de fichiers de l’image de
disque indiquée. Cela est similaire à
--root= mais
opère sur des systèmes de fichiers stockés dans des
images de disque ou des périphériques en mode bloc.
L’image de disque doit contenir simplement un système de
fichiers ou des systèmes de fichiers dans une table de partition GPT se
conformant à la
UAPI.2 Spécification des Partitions
Détectables[1]. Pour de plus amples informations sur les images de
disque prises en charge, consultez l’option de même nom de
systemd-nspawn(1).
Ajouté dans la version 246.
--locale=PARAMÈTRES_RÉGIONAUX,
--locale-messages=PARAMÈTRES_RÉGIONAUX
Définition des paramètres régionaux
du système, plus particulièrement les réglages des
variables
LANG= et
LC_MESSAGES=. L’argument doit
être un identifiant valable de paramètres régionaux, tel
que « fr_FR.UTF-8 ». Cette option contrôle
le fichier de configuration de
locale.conf(5).
Ajouté dans la version 216.
--keymap=PLAN_CODAGE_CLAVIER
Définition du plan de codage du clavier.
L’argument doit être un plan valable tel que
« fr-latin1 ». Cette option contrôle
l’entrée « KEYMAP » dans le fichier
de configuration de
vconsole.conf(5).
Ajouté dans la version 236.
--timezone=FUSEAU_HORAIRE
Définition du fuseau horaire du système.
L’argument doit être un argument valable de zone horaire tel que
« Europe/Paris ». Cette option contrôle le
lien symbolique pour
localtime(5).
Ajouté dans la version 216.
--hostname=HÔTE
Définition du nom d’hôte du
système. L’argument doit être un nom d’hôte
compatible avec le DNS. Cette option contrôle le fichier de
configuration de
hostname(5).
Ajouté dans la version 216.
--setup-machine-id
Initialisation de l’ID de machine du
système à un ID aléatoire. Cette option contrôle
le fichier de
machine-id(5).
Cette option ne fonctionne qu’en combinaison avec les
options --root= ou --image=. Sur un système en
fonctionnement, l’ID de machine est écrit par le gestionnaire
avec une aide de systemd-machine-id-commit.service(8).
Ajouté dans la version 216.
--machine-id=ID
Définition de l’ID de machine du
système à la valeur spécifiée. Les mêmes
restrictions s’appliquent de la même manière que pour
l’option
--setup-machine-id.
Ajouté dans la version 216.
--machine-tags=ÉTIQUETTE[:ÉTIQUETTE...]
Définition des étiquettes de machine
à la liste spécifiée d’étiquettes
séparées par des deux-points. Ces étiquettes sont de
courtes appellations qui peuvent être utilisées pour classifier
et grouper des machines dans un but de gestion, par exemple, pour identifier
le rôle d’une machine dans un déploiement, le parc ou
l’unité organisationnelle à laquelle elle appartient ou
tout autre attribut défini par l’administrateur. Chaque
étiquette individuelle doit comporter entre 1 et
255 caractères et ne comporter que des caractères
alphanumériques ASCII, « - » et
« . ». Cette option contrôle le champ
TAGS de
machine-info(5). Les étiquettes peuvent
être récupérées plus tard et modifiées avec
la commande
tags de
hostnamectl(1), et mises en correspondance
avec les réglages d’unité
ConditionMachineTag=/
AssertMachineTag= (voir
systemd.unit(5)).
Au contraire de la plupart des autres réglages, ces
étiquettes ne peuvent pas être demandées
interactivement.
Ajouté dans la version 261.
--root-password=MOT_PASSE,
--root-password-file=CHEMIN,
--root-password-hashed=MOT_PASSE_CHIFFRÉ
Définition du mot de passe du superutilisateur du
système. Cette option crée ou modifie les fichiers
passwd(5) et
shadow(5). Ce réglage existe sous trois
formes :
--root-password= accepte le mot de passe à
définir directement sur la ligne de commande,
--root-password-file= le lit dans un fichier et
--root-password-hashed= accepte un mot de passe déjà
chiffré sur la ligne de commande (consulter
shadow(5) pour plus
de détails sur le format des mots de passe chiffrés). Remarquez
qu’il n’est pas recommandé de spécifier des mots
de passe en texte simple sur la ligne de commande, car les autres utilisateurs
peuvent les voir simplement en invoquant
ps(1).
Ajouté dans la version 216.
--root-shell=INTERPRÉTEUR_COMMANDE
Définition de l’interpréteur de
commandes du superutilisateur. Cette option crée ou modifie le fichier
passwd(5).
Ajouté dans la version 246.
--kernel-command-line=LIGNE_COMMANDE
Définition de la ligne de commande du noyau du
système. Cette option contrôle le fichier
/etc/kernel/cmdline qui est utilisé par
kernel-install(8).
Ajouté dans la version 246.
--prompt-locale, --prompt-keymap,
--prompt-timezone, --prompt-hostname,
--prompt-root-password, --prompt-root-shell
Interrogation de manière interactive de
l’utilisateur pour un réglage basique spécifique.
Remarquez que tout réglage explicite de configuration
spécifié sur la ligne de commande a la priorité, et
l’utilisateur ne recevra pas d’invite pour lui.
Ajouté dans la version 216.
--prompt
Interrogation de l’utilisateur pour les
paramètres régionaux, le plan de codage du clavier, le fuseau
horaire, le nom d’hôte, le mot de passe et
l’interpréteur de commandes du superutilisateur. C’est
équivalent à spécifier les options
--prompt-locale,
--prompt-keymap,
--prompt-timezone,
--prompt-hostname,
--prompt-root-password,
--prompt-root-shell ensemble.
Ajouté dans la version 216.
--prompt-keymap-auto
Si invoquée à partir d’un terminal
TTY virtuel, cette option est équivalente à l’option
--prompt-keymap, autrement elle n’a aucun effet. En
d’autres mots, elle ne propose une invite de manière interactive
pour un plan de codage que si un clavier local est nécessaire pour une
interaction.
Ajouté dans la version 259.
--copy-locale, --copy-keymap,
--copy-timezone, --copy-root-password,
--copy-root-shell
Copie d’un réglage basique
spécifique depuis un hôte. Cette option ne fonctionne
qu’en combinaison avec les options
--root= ou
--image=.
Ajouté dans la version 216.
--copy
Copie des paramètres régionaux, du plan de
codage du clavier, du fuseau horaire, du mot de passe et de
l’interpréteur de commandes du superutilisateur depuis un
hôte. Cette option est équivalente à spécifier les
options
--copy-locale,
--copy-keymap,
--copy-timezone,
--copy-root-password et
--copy-root-shell ensemble.
Ajouté dans la version 216.
--force
Écriture de la configuration même si les
fichiers concernés existent déjà. Sans cette option,
systemd-firstboot ne modifie ni ne remplace les fichiers existants.
Remarquez que lors de la configuration du compte du superutilisateur,
même avec cette option,
systemd-firstboot ne modifie que
l’entrée de l’utilisateur
« root », en laissant les autres entrées
dans
/etc/passwd et
/etc/shadow inchangées.
Ajouté dans la version 246.
--reset
Si cette option est spécifiée, tous les
fichiers existants configurés par
systemd-firstboot sont
supprimés. Remarquez que les fichiers sont supprimés sans se
préoccuper qu’ils aient ou non une nouvelle valeur. Cette
opération assure que le prochain amorçage de l’image sera
considéré comme un premier amorçage, et que
systemd-firstboot fournira de nouveau une invite pour configurer chacun
des fichiers supprimés.
Ajouté dans la version 254.
--delete-root-password
Suppression du mot de passe du superutilisateur du
système, autorisant une connexion comme superutilisateur sans mot de
passe à moins que le compte du superutilisateur soit verrouillé.
Remarquez que cette option n’est pas du tout sécurisée
et, par conséquent, ne doit pas être utilisée à la
légère.
Ajouté dans la version 246.
--welcome=
Cette option prend un argument booléen. Par
défaut, lors d’une invite de saisie d’options de
configuration par l’utilisateur, un texte bref d’accueil est
affiché avant la première question. Passer
« false » à cette option pour ne pas
afficher ce message.
Ajouté dans la version 246.
--chrome=
Cette option prend un argument booléen. Par
défaut, l’écran initial de configuration affiche des
barres « décoratives » en couleur
inversée au bas et en haut de l’écran de terminal, ce qui
peut être désactivé en réglant cette option
à « false ».
Ajouté dans la version 259.
--mute-console=
Cette option prend un argument booléen. Si
définie à « true », la sortie de
journalisation du noyau et la sortie d’état du gestionnaire de
service vers la console du système sont désactivées
temporairement lors de l’exécution de
systemd-firstboot,
de façon que sa propre sortie ne soit pas interrompue. La valeur par
défaut est « false ».
Ajouté dans la version 259.
-h, --help
Afficher un aide-mémoire succinct et
quitter.
--version
Afficher une information de version courte et
quitter.
ACCRÉDITATIONS¶
systemd-firstboot prend en charge la logique du service
d’identification telle que mise en œuvre par
ImportCredential=/LoadCredential=/SetCredential= (voir
systemd.exec(5) pour plus de détails). Les
accréditations suivantes sont utilisées lorsqu’elles
sont fournies :
passwd.hashed-password.root,
passwd.plaintext-password.root
Une version chiffrée ou en texte simple du mot de
passe du superutilisateur, au lieu d’une invite pour
l’utilisateur. Ces accréditations sont équivalentes
à celles semblables définies dans le service
systemd-sysusers.service(8).
Ajouté dans la version 249.
passwd.shell.root
Spécification du binaire
d’interpréteur de commandes à utiliser pour le compte
spécifié. C’est équivalent a
l’accréditation du même nom définie pour le
service
systemd-sysusers.service(8).
Ajouté dans la version 249.
firstboot.locale, firstboot.locale-messages
Ces accréditations spécifient les
réglages de paramètres régionaux à définir
lors du premier amorçage, au lieu d’une invite pour
l’utilisateur.
Ajouté dans la version 249.
firstboot.keymap
Cette accréditation spécifie les
réglages de clavier à utiliser lors du premier amorçage,
au lieu d’une invite pour l’utilisateur.
Remarquez la parenté avec l’accréditation
vconsole.keymap utilisée par
systemd-vconsole-setup.service(8) : les deux affectent
finalement le même réglage, mais firstboot.keymap est
inscrite dans /etc/vconsole.conf au premier amorçage (si ce
n’est déjà configuré) et puis lue dans ce
fichier par systemd-vconsole-setup, tandis que vconsole.keymap
est lue à chaque amorçage et n’est pas persistante sur
le disque (mais toute configuration dans vconsole.conf, si elle
existe, aura la priorité).
Ajouté dans la version 249.
firstboot.timezone
Cette accréditation spécifie le
réglage de fuseau horaire à utiliser lors du premier
amorçage, au lieu d’une invite pour l’utilisateur.
Ajouté dans la version 249.
firstboot.hostname
Cette accréditation spécifie le nom
d’hôte statique du système à utiliser lors du
premier amorçage. L’utilisateur ne recevra pas d’invite
pour le nom d’hôte. Remarquez que cela détermine le nom
d’hôte statique, pas le nom d’hôte transitoire, et
n’a d’effet qu’au premier amorçage, au contraire
de
system.hostname.
Ajouté dans la version 261.
firstboot.machine-tags
Cette accréditation spécifie les
étiquettes de machine à utiliser lors du premier
amorçage, sous forme de liste avec comme séparateur des
deux-points ; équivalente à l’option
--machine-tags= décrite ci-avant. Les étiquettes sont
écrites dans le champ
TAGS de
/etc/machine-info (si ce
fichier n’existe déjà) et n’ont d’effet
qu’au premier amorçage. Si la liste contient des
étiquettes non valables, elle est entièrement ignorée.
Ajouté dans la version 261.
Remarquez que par défaut le fichier d’unité
systemd-firstboot.service est conçu pour hériter des
accréditations listées à partir du gestionnaire de
service. Par conséquent, lors d’une première invocation
d’un conteneur avec un /etc/ vide, il est possible de
configurer le mot de passe du superutilisateur pour être
« systemd » de cette façon :
# systemd-nspawn --image=... --set-credential=firstboot.locale:fr_FR.UTF-8 ...
Remarquez que ces accréditations ne sont lues et
appliquées que lors du premier amorçage. Une fois
appliquées, elles le demeurent lors des amorçages suivants, et
les accréditations ne sont plus prises en compte.