elogind-246.10
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.5.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
fichier dans la hiérarchie standard de systemd dans /run/systemd
.
Note
Development versions of BLFS may not build or run some packages
properly if dependencies have been updated since the most recent
stable versions of the book.
Informations sur le paquet
Dépendances de elogind
Requises
dbus-1.14.0
Recommandes
Linux-PAM-1.5.2 (requis pour Xorg), Polkit-121 (à l'exécution), docbook-xml-4.5
et docbook-xsl-nons-1.79.2 et libxslt-1.1.35 (tous trois pour construire les
pages de manuel)
Facultatives
Pour les tests : lxml-4.9.1,
gobject-introspection-1.72.0,
zsh-5.9, Valgrind-3.19.0, audit-userspace,
bash-completion,
kexec
et SELinux
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/elogind
Configuration du
noyau
Activez les options suivantes dans la configuration du noyau et
recompilez le noyau si nécessaire :
General setup --->
[*] Control Group support [CONFIG_CGROUPS]
File systems --->
[*] Inotify support for userspace [CONFIG_INOTIFY_USER]
Pseudo filesystems --->
[*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]
En plus, certains tests ont besoin de l'API noyau de cryptographie
en espace utilisateur qui s'active avec :
-*- Cryptographic API ---> [CONFIG_CRYPTO]
<M/*> Userspace cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
<M/*> User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
Installation de elogind
Installez elogind en lanant les
commandes suivantes :
sed -i '/Disable polkit/,+8 d' meson.build &&
sed '/request_name/i\
r = sd_bus_set_exit_on_disconnect(m->bus, true);\
if (r < 0)\
return log_error_errno(r, "Failed to set exit on disconnect: %m");' \
-i src/login/logind.c &&
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dcgroup-controller=elogind \
-Ddbuspolicydir=/etc/dbus-1/system.d \
-Dman=auto \
.. &&
ninja
Pour tester les résultats, lancez : ninja test. Quelques tests sont
passés si vous n'utilisez pas les privilèges root
.
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
sed ...
meson.build : ce changement permet au paquet
d'être construit sans avoir installé polkit (il est quand même
requis à l'exécution) mais de lui permettre d'utiliser polkit après
l'installation du paquet.
sed ...
src/login/logind.c : ce changement permet au
démon elogind de quitter quand il est déconnecté de dbus (par
exemple si dbus est tué).
-Dcgroup-controller=elogind
: ce
paramètre s'assure qu'elogind est
choisi comme contrôleur cgroup, même s'il est démarré avec un autre
contrôleur cgroup.
-Ddbuspolicydir=/etc/dbus-1/system.d
:
ce paramètre choisi l'emplacement du répertoire de politique
D-Bus.
-Dman=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.
-Ddefault-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
Le fichier /etc/elogind/logind.conf
installé contient toutes les options possibles avec leurs valeurs
par défaut, commentées. Vous pourriez vouloir désactiver le fait
de tuer les processus utilisateurs à la déconnexion, en lançant,
en tant qu'utilisateur root
:
sed -e '/\[Login\]/a KillUserProcesses=no' \
-i /etc/elogind/logind.conf
Chaque utilisateur devra enregistrer une session utilisateur avec
Linux-PAM à la connexion. Le
fichier /etc/pam.d/system-session
doit être modifié et un nouveau fichier doit être créé pour
qu'elogind
fonctionne correctement. Lancez les commandes suivante en tant
qu'utilisateur root
:
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
Contents
Programmes installs:
busctl, elogind-inhibit et
loginctl
Bibliothque installe:
libelogind.so
Rpertoires installs:
/lib/elogind, /etc/elogind,
/usr/include/elogind et /usr/share/doc/elogind-246.10
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
|
libelogind.so
|
est la bibliothèque d'utilitaires principale d'elogind
|
Last updated on