It allows switching users without logging out [many user can be logged in on the same hardware at the same time with one user active].
Acredito que o consolekit forneceu um mecanismo para os aplicativos determinarem qual usuário está ativo , ou seja, sentado em frente ao computador. Isso difere da opção su user
desta maneira:
- Seu computador tem um lugar atribuído a um mouse, teclado, monitor, microfone, câmera e áudio.
- Você senta no computador e faz login por meio de um console virtual (VC) / gerenciador de login gráfico (GLM).
- Você bloqueia sua sessão e depois vai embora.
- Alguém mais se senta e faz o login por meio de um segundo VC / GLM.
- Agora, dois usuários estão conectados (duas sessões), mas apenas o segundo está ativo .
Cujos processos têm acesso ao hardware agora? Você certamente não quer que o segundo usuário inicie um programa de gravação que retenha o acesso ao microfone / câmera / teclado quando você voltar à sua sessão.
Embora não esteja claro se o consolekit retira o acesso ao hardware dos processos, no mínimo, ele permite que um processo seja um "bom cidadão" e libere hardware quando a sessão é alterada.
Logins remotos e su
ssh
e su - user
não são afetados pelo consolekit. Consolekit destina-se a gerenciar sessões para assentos. Um assento é uma coleção de dispositivos físicos (mouse, teclado, monitor, etc.) atribuídos ao referido assento. Uma sessão é criada quando um usuário efetua login no referido assento. Um lugar pode ter muitas sessões e o consolekit rastreia essas sessões e notifica processos (que escutam) via DBUS quando a sessão muda.
Restrições de desligamento para vários usuários
O Consolekit também pode ser usado em conjunto com o policykit para impedir que os usuários encerrem o sistema quando várias sessões estiverem abertas (mais de um usuário efetuou login).
Por que usar o consolkit?
Para um sistema de usuário único, o consolekit não tem nenhum uso. Se você tem uma família compartilhando um único computador, isso permite que todos façam login e alternem usuários sem efetuar logout e sem interferir no acesso ao hardware. IIRC, cada usuário tem sua própria instância xserver também.
Alternativas
Não conheço alternativas para o consolekit ou o systemd. Se você precisar dessa funcionalidade, considere a hipótese de forjar o consolekit.