Polkit-123

Introdução ao Polkit

Polkit é um kit de ferramentas para definir e para manusear autorizações. Ele é usado para permitir que processos não privilegiados se comuniquem com processos privilegiados.

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

Informação do Pacote

Dependências do Polkit

Exigidas

GLib-2.76.4

Recomendadas

[Nota]

Nota

Como systemd-logind usa PAM para registrar sessões de usuário(a), é uma boa ideia construir Polkit com suporte a PAM, de forma que systemd-logind possa rastrear sessões Polkit.

Opcionais

GTK-Doc-1.33.2, JS-102.13.0 (pode ser usado no lugar de duktape) e dbusmock-0.29.1 (para os testes)

Dependências Exigidas em Tempo de Execução

Systemd-254

Dependências Opcionais em Tempo de Execução

Um agente de autenticação polkit para usar o polkit no ambiente gráfico: polkit-kde-agent em Plasma-5.27.7 para KDE, o agente construído em gnome-shell-44.3 para GNOME3, polkit-gnome-0.105 para XFCE e lxpolkit em LXSession-0.5.5 para LXDE

[Nota]

Nota

Se libxslt-1.1.38 estiver instalado, então docbook-xml-4.5 e docbook-xsl-nons-1.79.2 serão exigidos. Se você tiver instalado libxslt-1.1.38, mas não deseja instalar nenhum dos pacotes DocBook mencionados, [então] você precisará usar -Dman=false nas instruções abaixo.

Instalação do Polkit

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano polkitd depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) root:

groupadd -fg 27 polkitd &&
useradd -c "Dono(a) do Processo de Segundo Plano do PolicyKit" -d /etc/polkit-1 -u 27 \
        -g polkitd -s /bin/false polkitd

Se usar JS-102.13.0, faça a seguinte mudança (veja-se as Explicações dos Comandos abaixo para mais informações):

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' \
    -i src/polkitbackend/polkitbackendjsauthority.cpp

Instale o Polkit executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                            \
      --prefix=/usr                       \
      --buildtype=release                 \
      -Dman=true                          \
      -Dsession_tracking=libsystemd-login \
      -Dtests=true                        &&
ninja

Para testar os resultados, primeiro certifique-se de que o processo de segundo plano D-Bus do sistema esteja executando e que D-Bus Python-1.3.2 e dbusmock-0.29.1 estejam instalados. Em seguida, execute ninja test.

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

ninja install

Explicações do Comando

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' ... : A compilação JIT do JS102 precisa do mapeamento W+X, o que é perigoso e não é permitido pelo arquivo de unidade do systemd fornecido com o pacote polkit. Esse comando não é estritamente necessário em sistemas baseados em sysvinit, mas ainda melhora a segurança. Ele não tem efeito se construir-se o polkit com o mecanismo Javascript duktape-2.7.0 recomendado.

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-Dtests=true: Essa chave permite executar a suíte de teste deste pacote. Como Polkit é usado para autorizações, a integridade dele pode afetar a segurança do sistema. Portanto, é recomendado executar a suíte de teste construindo este pacote.

-Djs_engine=mozjs: Essa chave permite usar o mecanismo JavaScript JS-102.13.0 em vez do mecanismo JavaScript duktape-2.7.0.

-Dos_type=lfs: Use essa chave se você não criou o arquivo /etc/lfs-release ou a detecção automática da distribuição falhará e você estará inapto(a) a usar o Polkit.

-Dauthfw=shadow: Essa chave habilita o pacote a usar o Shadow em vez da estrutura de autenticação Linux PAM. Use-a se você não tiver instalado Linux PAM.

-Dintrospection=false: Use essa opção se tiver certeza de que não precisa dos arquivos gobject-introspection para o polkit ou não tiver o gobject-introspection instalado.

-Dman=false: Use essa opção para desabilitar a geração e a instalação das páginas de manual. Isso é útil se libxslt não estiver instalado.

-Dexamples=true: Use essa opção para construir os aplicativos de exemplo.

-Dgtk_doc=true: Use essa opção para habilitar a construção e a instalação da documentação da API.

Conteúdo

Aplicativos Instalados: pkaction, pkcheck, pkexec, pkttyagent e polkitd
Bibliotecas Instaladas: libpolkit-agent-1.so e libpolkit-gobject-1.so
Diretórios Instalados: /etc/polkit-1, /usr/include/polkit-1, /usr/lib/polkit-1, /usr/share/gtk-doc/html/polkit-1 e /usr/share/polkit-1

Descrições Curtas

pkaction

é usado para obter informação relativa às ações registradas do PolicyKit

pkcheck

é usado para verificar se um processo está autorizado para ação

pkexec

permite que um(a) usuário(a) autorizado(a) execute um comando como outro(a) usuário(a)

pkttyagent

é usado para iniciar um agente textual de autenticação para o assunto

polkitd

fornece o serviço D-Bus do org.freedesktop.PolicyKit1 no barramento de mensagem do sistema

libpolkit-agent-1.so

contém as funções de API do agente de autenticação Polkit

libpolkit-gobject-1.so

contém as funções da API de autorização Polkit