Systemd-252

Introduction à systemd

Alors que systemd a été installé avec LFS, il y a plein de fonctionnalités fournies par le paquet qui n'ont pas été inculeses dans l'installation initiale car Linux-PAM n'était pas installé. Le paquet systemd doit être reconstruit pour fournir un service systemd-logind fonctionnel, qui fourint plein de fonctionnalités supplémentaires pour les paquets qui en dépendent.

This package is known to build and work properly using an LFS 11.3 platform.

Informations sur le paquet

  • Téléchargement (HTTP) : https://github.com/systemd/systemd/archive/v252/systemd-252.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : b9456750a212dd54d81caeb3c38134b6

  • Taille du téléchargement : 11 Mo

  • Estimation de l'espace disque requis : 307 Mo (avec les tests)

  • Estimation du temps de construction : 2,8 SBU (avec les tests)

Téléchargements supplémentaires

Dépendances de systemd

Requises

Linux-PAM-1.5.2

Dépendance à l'exécution recommandée

Facultatives

btrfs-progs-6.1.3, cURL-7.88.1, cryptsetup-2.4.3, git-2.39.2, GnuTLS-3.8.0, iptables-1.8.9, libgcrypt-1.10.1, libidn2-2.3.4, libpwquality-1.4.5, libseccomp-2.5.4, libxkbcommon-1.5.0, make-ca-1.12, p11-kit-0.24.1, pcre2-10.42, qemu-7.2.0, qrencode-4.1.1, rsync-3.2.7, sphinx-6.1.3, Valgrind-3.20.0, zsh-5.9 (pour les complétions zsh), gnu-efi, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, lz4, quota-tools et tpm2-tss

Facultatives (pour reconstruire les pages de manuel)

docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 et lxml-4.9.2 (pour contstruire l'index des pages de manuel de systemd)

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/systemd

Installation de systemd

Tout d'abord, corrigez un problème de sécurité dans systemd-coredump :

patch -Np1 -i ../systemd-252-security_fix-1.patch

Supprimez deux groupes inutiles, render et sgx, des règles udev par défaut :

sed -i -e 's/GROUP="render"/GROUP="video"/' \
       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in

Reconstruisez systemd en exécutant les commandes suivantes :

mkdir build &&
cd    build &&

meson --prefix=/usr                 \
      --buildtype=release           \
      -Ddefault-dnssec=no           \
      -Dfirstboot=false             \
      -Dinstall-tests=false         \
      -Dldconfig=false              \
      -Dman=auto                    \
      -Dsysusers=false              \
      -Drpmmacrosdir=no             \
      -Dhomed=false                 \
      -Duserdb=false                \
      -Dmode=release                \
      -Dpam=true                    \
      -Dpamconfdir=/etc/pam.d       \
      -Ddocdir=/usr/share/doc/systemd-252 \
      ..                            &&

ninja
[Note]

Note

Pour de meilleurs résultats, assurez-vous que vous lancez la suite de tests depuis un système démarré par la même version de systemd que celle que vous reconstruisez.

Pour tester les résultats lancez : PATH+=:/usr/sbin ninja test.

Maintenant, en tant qu'utilisateur root :

ninja install

Explication des commandes

--buildtype=release : spécifie le type de construction convenant aux versions stables de ce paquet, comme la valeur par défaut produit des binaires non optimisés.

-Dpamconfdir=/etc/pam.d : force les fichiers PAM à être installés dans /etc/pam.d plutôt qu edans /usr/lib/pam.d.

-Duserdb=false : supprime un démon qui n'offre rien d'utile dans une configuration BLFS. Si vous voulez activer le démon userdb, remplacez « false » par « true » dans la commande meson ci-dessus.

-Dhomed=false : supprime un démon qui n'offre rien d'utile pour une configuration BLFS traditionnelle, surtout si vous utilisez des comptes créés par useradd. Pour activer systemd-homed, assurez-vous d'abord que vous avez installé cryptsetup-2.4.3 et libpwquality-1.4.5, puis remplacez « false » par « true » dans la commande meson ci-dessus.

Configuration de systemd

Le fichier /etc/pam.d/system-session a besoin d'être modifié et un nouveau fichier doit être créé pour que systemd-logind fonctionne correctement. Lancez les commandes suivantes en tant qu'utilisateur root :

grep 'pam_systemd' /etc/pam.d/system-session ||
cat >> /etc/pam.d/system-session << "EOF"
# Begin Systemd addition

session  required    pam_loginuid.so
session  optional    pam_systemd.so

# End Systemd addition
EOF

cat > /etc/pam.d/systemd-user << "EOF"
# Begin /etc/pam.d/systemd-user

account  required    pam_access.so
account  include     system-account

session  required    pam_env.so
session  required    pam_limits.so
session  required    pam_unix.so
session  required    pam_loginuid.so
session  optional    pam_keyinit.so force revoke
session  optional    pam_systemd.so

auth     required    pam_deny.so
password required    pam_deny.so

# End /etc/pam.d/systemd-user
EOF
[Avertissement]

Avertissement

Si vous mettez à jour depuis une version antérieure de systemd et qu'un initrd est utilisé pour démarrer le système, vous devriez générer un nouvel initrd avant de redémarrer le système.

Contents

Une liste des fichiers installés, avec leur description courte se trouve sur ../../../../lfs/view/11.3-systemd/chapter08/systemd.html#contents-systemd.

Plus bas sont listés les programmes nouvellement installés et leur description courte.

Programmes installés: homectl (si cryptsetup-2.4.3 est installé), systemd-cryptenroll (si cryptsetup-2.4.3 est installé) et userdbctl (facultatifs)

Descriptions courtes

homectl

est un outil pour créer, supprimer, changer et inspecter un répertoire personnel géré par systemd-homed ; remarquez que c'est inutile pour les utilisateurs UNIX classiques et les répertoires personnels qui sont utilisés dans les livres LFS et BLFS.

systemd-cryptenroll

Est utilisé pour utiliser ou arrêter d'utiliser le chiffrement du disque complet pour le système, et pour initialiser et demander des clés secrètes et des clés de récupération

userdbctl

inspecte les utilisateurs, les groupes et les appartenances de groupes

pam_systemd.so

est un module PAM utilisé pour enregistrer les sessions utilisateur auprès du gestionnaire de connexion de systemd, systemd-logind