Qual é o mecanismo por trás da opção de desligamento da GUI do Ubuntu?

2

Por favor, corrija-me se estiver errado. Quando tentamos desligar ou reiniciar a partir do terminal usando Comando sudo init 0 , sudo init 6 (ou qualquer outro comando para o mesmo propósito) precisamos ser root para executar essa tarefa, mas quando fazemos a mesma coisa no Ubuntu ( Eu acho que a mesma coisa com a maioria dos desktops) da interface do usuário, é só não pedir qualquer permissão de root para qualquer uma das tarefas.

Que tipo de conversa / mecanismo está acontecendo aqui?

    
por Suresh 16.06.2015 / 06:58

2 respostas

3

Coisas como essa são controladas pelo Polkit (seu nome oficial, mas muitas vezes referido pelo seu antigo nome PolicyKit).

Essa ferramenta facilita que usuários não-root realizem determinadas ações no sistema que, de outra forma, exigiriam root, e o desligamento é uma das ações que geralmente é configurada para conceder a usuários regulares. Como funciona, o software do usuário chama uma determinada API do Polkit solicitando o desligamento e o Polkit verificará se esse usuário tem a autoridade para executar essa ação e, se for o caso, facilitará o processo. O Polkit também pode solicitar autenticação por meio de um agente de autenticação se o usuário não tiver autoridade para realizar essa ação.

Mais informações sobre a arquitetura do Polkit aqui:

link

    
por thomasrutter 16.06.2015 / 07:19
0

O comando usado para o desligamento usa dbus . Na verdade, o comando de desligamento é:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

De fato, o serviço systemd-logind é responsável pelos ganhos do usuário.

Além do que @thomasrutter disse, Com efeito, o systemd-logind fornece o acesso baseado em PolicyKit para usuários a operações como desligamento ou suspensão do sistema.

man systemd-logind

systemd-logind is a system service that manages user logins. It is
       responsible for:


       ·   Providing PolicyKit-based access for users to operations such as
           system shutdown or sleep

Por favor, dê uma olhada na minha resposta link .

    
por Maythux 16.06.2015 / 08:08