elogind-241.3

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.0 platform.

Package Information

elogind Dependencies

Required

dbus-1.12.16

Recommended

Optional

For the tests: lxml-4.4.1, gobject-introspection-1.60.2, zsh-5.7.1, 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]

Installation of elogind

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 \
      ..  &&
ninja

This package does not come with a test suite.

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.

ln -s ...: These commands install symlinks so that software packages find systemd compatible library and headers.

Configuring elogind

To automatically start elogind when the system is rebooted, install the /etc/rc.d/init.d/mountcgroupfs and /etc/rc.d/init.d/elogind bootscripts from the blfs-bootscripts-20190609 package.

make install-elogind

Note that this boot script only starts the system-wide elogind daemon. Each user will also 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: /etc/elogind, /usr/include/elogind, and /usr/share/doc/elogind-241.3

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 2019-08-20 12:09:08 -0700