A área de trabalho do Linux pode executar várias ações que, de outra forma, não estão disponíveis para o usuário quando efetuado login em um terminal. Ações como desligamento do sistema e alteração da hora do sistema são acessíveis apenas a um usuário sudo após a digitação da senha. Como é que isso funciona. Existe um daemon raiz em execução que assume o comando do usuário de login. Por favor, me guie para a resposta certa.
Estou executando o Ubuntu 13.10.
mount
(ing), podem ajudar um pouco na compreensão. Eu, pessoalmente, mastigar pesadamente sobre eles no momentoRespostas:
Atualmente no Ubuntu, o desligamento real é realizado pelo daemon
console-kit-daemon
do ConsoleKit , que é executado com privilégios de root. O daemon do ConsoleKit recebe a solicitação de desligamento do aplicativo do painel da área de trabalho via D-Bus . A política que permite que processos não privilegiados se comuniquem com processos privilegiados é tratada pelo polkit (anteriormente PolicyKit). Você pode emular a chamada do ConsoleKit via,dbus-send
se desejar. Em particular, para pedir ao ConsoleKit para executar um desligamento, você pode:No Ubuntu, o ConsoleKit substituiu o Hardware Abstraction Layer (HAL), um subsistema destinado a permitir que aplicativos de desktop descubram e usem o hardware do sistema host por meio de uma API portátil e abstrata, independentemente do tipo de hardware subjacente. Hoje, o HAL está obsoleto na maioria das distribuições Linux. A
dbus-send
chamada equivalente usando HAL é:Atualmente, o ConsoleKit não é mantido ativamente. O foco do projeto freedesktop.org mudou para o gerenciamento interno de assento / usuário / sessão do sistema systemd init chamado systemd-logind . Ainda não se sabe como isso afetará as distribuições que adotaram seus próprios sistemas init, como o iniciante no Ubuntu.
fonte