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
dbus-1.14.10 (tempo de execução), Linux-PAM-1.6.0 (exigido para Xorg),
Polkit-124 (tempo de execução), docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.39 (todos os três para construir
as páginas de manual)
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
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"
|