O que são o ConsoleKit e o PolicyKit? Como eles funcionam?

42

Vi que o GNU / Linux recente está usando o ConsoleKit e o PolicyKit. Para que servem? Como eles funcionam?

A melhor resposta deve explicar que tipo de problema cada um tenta resolver e como eles conseguem resolvê-lo.

Eu sou um usuário de longa data do GNU / Linux, de uma época em que essas coisas não existiam. Eu tenho usado o Slackware e recentemente o Gentoo. Como sou um usuário / administrador / desenvolvedor avançado, a resposta pode (e deve!) Ser a mais detalhada e precisa possível. Quero entender como essas coisas funcionam, para poder usá-las (como usuário ou desenvolvedor) da melhor maneira possível.

Denilson Sá Maia
fonte

Respostas:

24

Em resumo, o consolekit é um serviço que rastreia as sessões do usuário (ou seja, onde o usuário está logado). Ele permite alternar usuários sem fazer logout (muitos usuários podem fazer login no mesmo hardware ao mesmo tempo com um usuário ativo). Também é usado para verificar se uma sessão é "local", isto é, se um usuário tem acesso direto ao hardware (que pode ser considerado mais seguro que o acesso remoto). Documentação do ConsoleKit .

O PolicyKit permite recursos aprimorados em um ambiente de desktop. Tradicionalmente, apenas um usuário privilegiado (raiz) tinha permissão para configurar a rede. No entanto, enquanto estiver em um ambiente de servidor, é razoável supor que seria muito limitante não ser permitido conectar-se a um ponto de acesso no laptop, por exemplo. No entanto, você ainda pode não querer conceder privilégios totais a essa pessoa (como instalar programas) ou limitar as opções para algumas pessoas (por exemplo, nos laptops de seus filhos, somente redes 'confiáveis' com filtros dos pais podem ser usadas). Tanto quanto me lembro, funciona como:

  • Programa envia mensagem para o daemon via dbus sobre ação
  • O Daemon usa as bibliotecas / configuração do PolicyKit (na verdade, o daemon do PolicyKit) para determinar se um usuário tem permissão para executar uma ação. Pode acontecer que certas condições sejam cumpridas (como inserir senha ou acesso ao hardware).
  • O daemon executa a ação de acordo com ele (retorna erro de autenticação ou executa a ação)

Documentação do PolicyKit .

EDIT atualmente, o ConsoleKit é amplamente substituído pelo logind , que faz parte do systemd , embora exista uma versão independente elogind .

Maciej Piechotka
fonte