elogind-252.9

Introdução ao elogind

elogind é o "logind" do projeto systemd, extraído para ser um processo de segundo plano independente. Ele se integra com Linux-PAM-1.6.0 para rastrear todos(as) os(as) usuários(as) logados(as) em um sistema, e se eles(as) estão logados(as) graficamente, no console ou remotamente. Elogind expõe essas informações por meio da interface padrão org.freedesktop.login1 do D-Bus e também por meio do sistema de arquivos usando o esquema padrão /run/systemd do "systemd".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.1.

Informação do Pacote

Dependências do elogind

Recomendadas

Opcionais

lxml-4.9.4, zsh-5.9, Valgrind-3.22.0 (necessário para testes), audit-userspace, bash-completion, kexec e SELinux

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Logind

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

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]

Além disso, alguns testes precisam da "API" criptográfica do espaço do(a) usuário(a) do núcleo, a qual é habilitada com:

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

Instalação do elogind

Instale o elogind executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                              \
      --prefix=/usr                         \
      --buildtype=release                   \
      -Dman=auto                            \
      -Ddocdir=/usr/share/doc/elogind-252.9 \
      -Dcgroup-controller=elogind           \
      -Ddev-kvm-mode=0660                   \
      -Ddbuspolicydir=/etc/dbus-1/system.d &&
ninja

Para testar os resultados, emita: ninja test. Uns poucos testes serão ignorados se não executados com privilégios de root. Dois testes chamados test-fs-util e test-id128 exigem o link simbólico /etc/machine-id, de forma que eles falharão se esse link simbólico ainda não estiver criado seguindo as instruções em dbus-1.14.10.

Agora, como o(a) usuário(a) root:

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

Explicações do Comando

-Ddocdir=/usr/share/doc/elogind-252.9: Isso é necessário para instalar a documentação em um diretório versionado.

-Dcgroup-controller=elogind: Essa chave é necessária para construir esse pacote quando o núcleo não for compilado com CONFIG_CGROUPS habilitada. Observe que elogind precisa estritamente de um núcleo com CONFIG_CGROUPS habilitada em tempo de execução, mas essa chave permitirá construir o pacote primeiro.

-Ddbuspolicydir=/etc/dbus-1/system.d: Essa chave configura o local do diretório de políticas do D-Bus.

-Ddev-kvm-mode=0660: A regra udev do LFS configura o modo de /dev/kvm como 0660. Essa opção garante que as regras udev do elogind sejam consistentes com a configuração do LFS.

-Dman=auto: O valor padrão dessa chave é false. Configurá-lo como auto permite construir e instalar as páginas de manual se as dependências recomendadas estiverem instaladas.

-Dhtml=auto: O valor padrão dessa chave é false. Configurá-la como auto permite construir e instalar a documentação HTML se as dependências recomendadas estiverem instaladas.

-Ddefault-kill-user-processes=false: Determina se os processos de um(a) usuário(a) deveriam ser eliminados quando o(a) usuário(a) sai. O padrão é true, mas isso anula o uso tradicional de screen ou tmux. Isso também pode ser mudado no arquivo de configuração (veja-se abaixo).

ln -s ...: Esses comandos instalam links simbólicos, de modo que aqueles pacotes de software consigam encontrar a biblioteca e os cabeçalhos compatíveis com o "systemd".

Configurando o elogind

Arquivo de Configuração

/etc/elogind/logind.conf

Informação de Configuração

O arquivo instalado /etc/elogind/logind.conf contém todas as opções possíveis com os padrões delas comentados. Você possivelmente quera desabilitar a eliminação automática de processos do(a) usuário(a) quando o(a) usuário(a) sai, executando como o(a) usuário(a) root:

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

Cada usuário precisará registrar uma sessão de usuário(a) usando Linux-PAM no login. O arquivo /etc/pam.d/system-session precisa ser modificado e um novo arquivo precisa ser criado para a finalidade de que o elogind funcione corretamente. Execute os seguintes comandos como o(a) usuário(a) root:

cat >> /etc/pam.d/system-session << "EOF" &&
# Começo da adição de "elogind"

session  required    pam_loginuid.so
session  optional    pam_elogind.so

# Fim da adição de "elogind"
EOF
cat > /etc/pam.d/elogind-user << "EOF"
# Começo /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

# Fim /etc/pam.d/elogind-user
EOF
[Nota]

Nota

Depois da conclusão do elogind, você deveria verificar se ele funciona corretamente. Primeiro, certifique-se de que dbus esteja executando. Pode ser mais fácil fazer isso reinicializando o sistema. Depois de se logar novamente, execute o comando loginctl. O resultado deveria indicar que uma SESSÃO e um SEAT foram criados.

Conteúdo

Aplicativos Instalados: busctl, elogind-inhibit e loginctl
Biblioteca Instalada: libelogind.so
Diretórios Instalados: /usr/lib/elogind, /etc/elogind, /usr/include/elogind e /usr/share/doc/elogind-252.9

Descrições Curtas

busctl

é usado para introspectar e monitorar o barramento do "D-Bus"

elogind-inhibit

é usado para executar um aplicativo com bloqueio de inibidor de desligamento, suspensão ou inatividade

loginctl

é usado para introspectar e controlar o estado do Gerenciador de Login do "elogind"

libelogind.so

é a principal biblioteca de utilitários do "elogind"