elogind-257.14

Introduction à elogind

elogind est le « logind » du projet systemd extrait pour en faire un démon autonome. Il s'intègre avec Linux-PAM-1.7.2 pour connaître l'ensemble des utilisateurs qui sont connectés sur un système et s'ils sont connectés graphiquement, sur la console ou à distance. Elogind expose ces informations via l'interface D-Bus org.freedesktop.login1 standard, ainsi qu'à travers le système de fichiers dans la hiérarchie standard de systemd dans /run/systemd.

[Note]

Note

Les versions de développement de BLFS peuvent ne pas arriver à contruire ou à exécuter certains paquets correctement si LFS ou des dépendances ont été mises à jour depuis la dernière version stable des livres.

Informations sur le paquet

  • Téléchargement (HTTP) : https://github.com/elogind/elogind/archive/v257.14/elogind-257.14.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 6d084ff01c3eaf5e1a2f54c93fb279a2

  • Taille du téléchargement : 2,6 Mo

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

  • Estimation du temps de construction : 0.3 SBU (with parallelism=4; with tests)

Dépendances de elogind

Recommandées

Facultatives

lxml-6.1.1, zsh-5.9, Valgrind-3.27.1 (requis pour les tests), audit-userspace, bash-completion, kexec et ELinux

Notes des auteurs : https://wiki.linuxfromscratch.org/blfs/wiki/Logind

Configuration du noyau

Activez les options suivantes dans la configuration du noyau et recompilez le noyau si nécessaire :

File systems --->
  [*] Inotify support for userspace                               [INOTIFY_USER]
  Pseudo filesystems --->
    [*] Tmpfs virtual memory file system support (former shm fs)         [TMPFS]
    [*]   Tmpfs POSIX Access Control Lists                     [TMPFS_POSIX_ACL]

En plus, certains tests ont besoin de l'API noyau de cryptographie en espace utilisateur qui s'active avec :

-*- Cryptographic API --->                                              [CRYPTO]
  Crypto core or helper --->
    <*/M> Userspace cryptographic algorithm configuration          [CRYPTO_USER]
  Userspace interface --->
    <*/M> Hash algorithms                                 [CRYPTO_USER_API_HASH]

Installation de elogind

Installez elogind en lanant les commandes suivantes :

mkdir build &&
cd    build &&

meson setup ..                               \
      --prefix=/usr                          \
      --buildtype=release                    \
      -D man=auto                            \
      -D docdir=/usr/share/doc/elogind-257.14 \
      -D cgroup-controller=elogind           \
      -D dev-kvm-mode=0660                   \
      -D dbuspolicydir=/etc/dbus-1/system.d &&
ninja

Pour tester les résultats, lancez : ninja test. Quelques tests sont passés si vous n'utilisez pas les privilèges root. Trois tests, test-login, dbus-docs-fresh et check-version-history, sont connus pour échouer.

Maintenant, en tant qu'utilisateur root :

ninja install                                           &&
ln -sfv  libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &&
ln -sfvn elogind /usr/include/systemd

Explication des commandes

-D docdir=/usr/share/doc/elogind-257.14 : cela est requis pour installer la documentation dans un répertoire versionné.

-D cgroup-controller=elogind : ce paramètre est nécessaire pour construire ce paquet lorsque le noyau n'est pas construit avec CONFIG_CGROUPS. Remarquez que elogind nécessite vraiment CONFIG_CGROUPS à l'exécution, mais ce paramètre permettra de commencer par construire le paquet.

-D dbuspolicydir=/etc/dbus-1/system.d : ce paramètre choisi l'emplacement du répertoire de politique D-Bus.

-D dev-kvm-mode=0660 : la règle udev de LFS configure le mode de /dev/kvm à 0660. Cette option s'assure que les règles udev d'elogind restent cohérentes avec la configuration LFS.

-D man=auto : la valeur par défaut de ce paramètre est false. Le mettre à auto permet de construire et d'installer les pages de manuel si les dépendances recommandées sont installées.

-D html=auto : la valeur par défaut de ce paramètre est false. Le mettre à auto permet de construire et d'installer la documentation HTML si les dépendances recommandées sont installées.

-D default-kill-user-processes=false : indique si les processus d'un utilisateurs devraient être tués lorsqu'il se déconnecte. La valeur par défaut est true, mais cela contredit l'utilisation traditionnelle de screen ou tmux. Cela peut aussi se changer dans le fichier de configuration (voir plus bas).

ln -s … : ces commandes installent les liens symboliques pour que les paquets logiciels trouvent des bibliothèques et des en-têtes compatibles avec systemd.

Configuration de elogind

Fichier de configuration

/etc/elogind/logind.conf

Informations sur la configuration

The installed file /etc/elogind/logind.conf contains all the possible options with their defaults, commented out. You may wish to disable automatically killing user processes when the user logs out, by running, as the root user:

sed -e '/\[Login\]/a KillUserProcesses=no' \
    -i /etc/elogind/logind.conf

Each user will need to register a user session using Linux-PAM at login. The /etc/pam.d/system-session file needs to be modified and a new file must be created in order for elogind to work correctly. Run the following commands as the root user:

cat >> /etc/pam.d/system-session << "EOF" &&
# Begin elogind addition

session  required    pam_loginuid.so
session  optional    pam_elogind.so

# End elogind addition
EOF
cat > /etc/pam.d/elogind-user << "EOF"
# Begin /etc/pam.d/elogind-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_elogind.so

auth     required    pam_deny.so
password required    pam_deny.so

# End /etc/pam.d/elogind-user
EOF

This package provides a Name Service Switch (NSS) module. Previously, a Systemd-less system didn't have a dedicated NSS module used for better name resolution, while Systemd systems have one that is tightly ingrained with that software suite. Now, such a module is provided. In order to use it, the /etc/nsswitch.conf file that was installed in LFS must be altered. Overwrite the file as the root user:

cat > /etc/nsswitch.conf << "EOF" &&
# Begin /etc/nsswitch.conf

passwd: files elogind
group: files elogind
shadow: files elogind

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf
EOF
[Note]

Note

The myhostname, mymachines, and resolve NSS modules are still not provided (they come from Systemd). The installed file cannot use them yet.

[Note]

Note

Après la complétion de elogind, vous devriez vérifier qu'il fonctionne correctement. Assurez-vous d'abord que dbus est lancé. Il peut être plus facile de le faire en redémarrant le système. Après vous être de nouveau connecté, exécutez la commande loginctl. Le résultat devrait indiquer qu'une SESSION et un SEAT ont été créés.

Contenu

Programmes installés: busctl, elogind-inhibit, loginctl, userdbctl, and varlinkctl
Bibliothèque installée: libelogind.so and libnss_elogind.so
Répertoires installs: /usr/lib/elogind, /etc/elogind, /usr/include/elogind et /usr/share/doc/elogind-257.14

Descriptions courtes

busctl

est utilisé pour inspecter et surveiller le bus D-Bus

elogind-inhibit

est utilisé pour exécuter un programme avec un verrou contre l'extinction, la veille ou l'hibernation

loginctl

est utilisé pour inspecter et contrôler l'état du gestionnaire de connexion elogind

userdbctl

is used to inspect users, groups, and group memberships

varlinkctl

is used to interact with and invoke Varlink services

libelogind.so

est la bibliothèque d'utilitaires principale d'elogind

libnss_elogind.so

is the Name Service Switch (NSS) module for elogind