Remover Desligamento, Suspender, Reiniciar e Hibernar no menu do alternador do usuário

6

Estou usando uma área de trabalho como um roteador para minha rede local e como uma área de trabalho normal com vários usuários. Eu tenho Maverick correndo nele. Ocasionalmente, um dos usuários de desktop acidentalmente pressiona Shutdown, Restart, Suspend ou Hibernate, levando-me a corrigir a rede em horários aleatórios do dia. Eu sei como reiniciar e desligar a partir da linha de comando. Eu não preciso da interface gráfica.

Como posso remover as opções Desligar, Suspender, Reiniciar e Hibernar do menu do alternador de usuários? Tudo o que eu quero é o "Lock Screen", "Guest Session", Lista de usuários e "Logout".

Uma solução para todo o sistema seria melhor, mas eu posso fazer uma em cada usuário, se necessário.

    
por Azendale 16.07.2011 / 08:23

3 respostas

4

Opção 1:

Instale o gconf-editor , execute gksu gconf-editor e em / apps / indicator-session / suprima a reinicialização e o desligamento.

Não tenho certeza sobre suspensão e hibernação, talvez a alteração de <allow_active> para no on /usr/share/polkit-1/actions/org.freedesktop.upower.policy seja suficiente.

Opção 2:

Remova o pacote Sessão de indicadores e adicione atalhos na área de trabalho para fazer logout e bloquear a tela.

O comando para efetuar logout é gnome-session-save --logout-dialog e para bloquear a tela use gnome-screensaver-command --lock .

    
por sergio91pt 16.07.2011 / 11:29
3

Para suspender e hibernar, em vez de editar um arquivo de pacote que será substituído quando o pacote for atualizado, pode-se usar arquivos em /etc/polkit-1/localauthority . Desativar suspender com o arquivo /etc/polkit-1/localauthority/90-mandatory.d/disable-suspend.pkla contendo:

[Disable suspend]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Isso é inspirado no arquivo /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla contendo, entre outras coisas, a configuração para desabilitar a hibernação:

[Disable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

Pelo menos, é o que eu uso no Ubuntu 12.04.

Mais informações sobre a autoridade local do PolicyKit: link

    
por Christophe Drevet-Droguet 13.09.2012 / 15:15
2

Para o Ubuntu 14.04 e 16.04 (Unity)

Use gsettings para desativar a maioria dos itens de menu no menu de sessão do indicador e use systemctl para desativar a própria capacidade de suspensão no nível do systemd. Esta solução não é perfeita, no entanto.

Como desativar itens de menu

Para começar, procure chaves relevantes usando o comando gsettings e filtre com o comando grep . Use "session" e "menu" para as palavras-chave filtrarem duas vezes.

$ gsettings list-recursively | grep session | grep menu
com.canonical.indicator.session suppress-logout-menuitem false
com.canonical.indicator.session force-restart-menuitem false
com.canonical.indicator.session suppress-restart-menuitem false
com.canonical.indicator.session suppress-shutdown-menuitem false
com.canonical.indicator.session user-show-menu true

Em seguida, use gsettings para definir chaves relevantes com valor oposto aos valores atuais, ou seja, "false" se torna "true", vice-versa. Execute os seguintes comandos, um por um.

$ gsettings set com.canonical.indicator.session suppress-shutdown-menuitem true
$ gsettings set com.canonical.indicator.session suppress-restart-menuitem true
$ gsettings set com.canonical.indicator.session suppress-logout-menuitem true
$ gsettings set com.canonical.indicator.session user-show-menu false

Para a chave suppress-logout-menuitem entrar em vigor, o usuário pode precisar recarregar a área de trabalho Unity (executar o comando unity no prompt de comando do Terminal ou do HUD, não é necessário efetuar logout ou algo assim).

E tudo isso é necessário para ocultar a maioria dos itens de menu.

Após as etapas acima, todos os itens de menu estão agora ocultos no menu da sessão do indicador, exceto o item de menu "Suspender". Existe um erro de abertura em relação à incapacidade de ocultar o Suspender item de menu. Confirmar e inscrever-se pode encorajar sua resolução.

Dado que o item de menu não pode ser suprimido diretamente, a próxima solução mais fácil é desativar qualquer suspensão no nível do sistema.

Como desativar a suspensão no Ubuntu 14.04 (Unity, upstart)

Na versão 14.04, há várias maneiras de desativar a suspensão, por exemplo, editar arquivos de configuração para polkit-1 ou pm-utils . Mas não há nenhum esclarecimento sobre o que funcionará corretamente.

Como desativar a suspensão no Ubuntu 16.04 (Unity, systemd)

Na versão 16.04, desative qualquer suspensão com systemd conforme descrito no Debian Wiki .

$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink from /etc/systemd/system/sleep.target to /dev/null.
Created symlink from /etc/systemd/system/suspend.target to /dev/null.
Created symlink from /etc/systemd/system/hibernate.target to /dev/null.
Created symlink from /etc/systemd/system/hybrid-sleep.target to /dev/null.

O comando systemctl entrará em vigor imediatamente. Não há necessidade de reiniciar ou qualquer coisa.

Como resultado, sempre que o item de menu "Suspender" for clicado, o sistema não entrará em suspensão, mas fará com que a tela fique em branco e retorne à tela de login (efeito semelhante a "Bloquear Tela").

Solução alternativa para problemas conhecidos após a suspensão

Mesmo sem a suspensão real, o mesmo problema conhecido surgirá ao retomar a sessão atual: O gerente da rede não acorda após a suspensão . A solução é reiniciar o serviço.

$ sudo systemctl restart network-manager.service

O gerenciador de rede será reiniciado e a rede estará disponível novamente.

Testado acima trabalhando no Ubuntu 16.04 (Unity), instalado no VirtualBox.

    
por clearkimura 13.09.2017 / 21:55