elogind-246.10
Introdução a "elogind"
elogind é o "logind" do projeto
systemd, extraído para ser um
processo de segundo plano independente. Ele se integra com
Linux-PAM-1.5.2 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 adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
Dependências do "elogind"
Exigidas
dbus-1.14.6
Recomendadas
Linux-PAM-1.5.2 (exigido para o "Xorg"),
Polkit-122 (tempo de execução), docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.37 (todos três para construir as
páginas de manual)
Opcionais
Para os testes: lxml-4.9.2, gobject-introspection-1.74.0,
zsh-5.9, Valgrind-3.20.0, audit-userspace,
bash-completion,
kexec
e SELinux
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/elogind
Configuração do
Núcleo
Habilite as seguintes opções na configuração do núcleo e recompile
o núcleo, se necessário:
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]
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 ---> [CONFIG_CRYPTO]
<M/*> Userspace cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
<M/*> User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
Instalação do "elogind"
Instale elogind executando os
seguintes comandos:
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
Para testar os resultados, emita: ninja test. Uns poucos testes são
pulados se não executados com privilégios de root
.
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
sed ... meson.build:
Essa mudança permite que o pacote seja construído sem o "polkit"
ser instalado (ainda é uma dependência de tempo de execução), mas
apto a usar o "polkit" depois que tal pacote seja instalado.
sed ...
src/login/logind.c: Essa mudança permite que o
processo de segundo plano "elogind" saia quando for desconectado do
"dbus" (por exemplo, quando o "dbus" for eliminado).
-Dcgroup-controller=elogind
: Essa
chave garante que elogind seja
selecionado como o controlador de "cgroup", mesmo se inicializado
com outro controlador de "cgroup" em execução.
-Ddbuspolicydir=/etc/dbus-1/system.d
:
Essa chave configura o local do diretório de políticas do
D-Bus.
-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.
-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
Conteúdo
Aplicativos Instalados:
busctl, elogind-inhibit e loginctl
Biblioteca Instalada:
libelogind.so
Diretórios Instalados:
/lib/elogind, /etc/elogind,
/usr/include/elogind e /usr/share/doc/elogind-246.10
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"
|