elogind-243.4
Introduction to elogind
elogind is the systemd project's "logind", extracted out to
be a standalone daemon. It integrates with Linux-PAM-1.3.1 to know the set of users that
are logged in to a system and whether they are logged in
graphically, on the console, or remotely. Elogind exposes this information via the
standard org.freedesktop.login1 D-Bus interface, as well as through the file
system using systemd's standard /run/systemd
layout.
This package is known to build and work properly using an LFS-9.1
platform.
Package Information
elogind Dependencies
Required
dbus-1.12.16
Recommended
docbook-xml-4.5, docbook-xsl-1.79.2, and libxslt-1.1.34 (to build the man pages),
Linux-PAM-1.3.1, and Polkit-0.116
(runtime)
Optional
For the tests: lxml-4.5.0, gobject-introspection-1.62.0,
zsh-5.8, Valgrind-3.15.0, audit-userspace,
bash-completion,
kexec,
and SELinux
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/elogind
Kernel
Configuration
Enable the following options in the kernel configuration and
recompile the kernel if necessary:
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]
In addition, some tests need the userspace cryptographic kernel
API, which is enabled with:
-*- 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 of elogind
Fix one of the tests:
sed 's/os-release/lsb-release/' -i src/test/test-copy.c
Install elogind by running the
following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
-Dcgroup-controller=elogind \
-Ddbuspolicydir=/etc/dbus-1/system.d \
-Dman=auto \
.. &&
ninja
To test the results, issue: ninja
test. A few tests are skipped if not run with
root
privileges.
Now, as the root
user:
ninja install &&
ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &&
ln -sfvn elogind /usr/include/systemd
Command Explanations
-Dcgroup-controller=elogind
: This
switch ensures that elogind is
selected as the cgroup controller, even if booted with another
running cgroup controller.
-Ddbuspolicydir=/etc/dbus-1/system.d
:
This switch sets the location of the D-Bus policy directory.
-Dman=auto
: The default
value of this switch is false. Setting it to auto allows building and installing the
man pages if the recommended dependencies are installed.
ln -s ...: These
commands install symlinks so that software packages find systemd
compatible library and headers.
Configuring elogind
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 needs to 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
Contents
Installed Programs:
busctl, elogind-inhibit, and
loginctl
Installed Library:
libelogind.so
Installed Directories:
/lib/elogind, /etc/elogind,
/usr/include/elogind, and /usr/share/doc/elogind-243.4
Short Descriptions
busctl
|
is used to introspect and monitor the D-Bus bus.
|
elogind-inhibit
|
is used to execute a program with a shutdown, sleep or
idle inhibitor lock taken.
|
loginctl
|
is used to introspect and control the state of the
elogind Login Manager.
|
libelogind.so
|
is the main elogind utility library.
|
Last updated on 2020-02-15 20:23:35 -0800