Qual é a maneira mais “Ubuntu” de impedir que certos usuários desliguem, suspendam etc?

20

Em um sistema Unix tradicional, os usuários não-root não podem fazer isso. O que é que dá aos usuários essa capacidade em ambientes de desktop modernos e como eu iria desabilitar isso em uma base por usuário ou por grupo?

Eu já vi um ótimo método para impedir que qualquer pessoa desligue / suspenda. mas idealmente o que estou procurando é impedir que certos usuários (como, por exemplo, adicionando / removendo-os de um determinado grupo de usuários) sejam capazes de executar um desligamento, reiniciar, suspender.

    
por thomasrutter 03.05.2012 / 06:18

2 respostas

20

Como mencionado na outra pergunta, você pode controlar essas ações através do sistema de autoridade local do PolicyKit.

Se você criar um arquivo /etc/polkit-1/50-local.d/restrict-shutdown.pkla com conteúdo como:

[Disable shutdown/etc for group restricted]
Identity=unix-group:restricted
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no

Isso impedirá que qualquer membro do grupo restricted execute as ações correspondentes. Como alternativa, se você quiser restringir usuários individuais, substitua unix-group:restricted por unix-user:user1;unix-user:user2;... . Qualquer usuário que não seja correspondido por essa política deve ter o comportamento padrão.

    
por James Henstridge 03.05.2012 / 07:14
0

Crie e edite este arquivo como root:

/etc/polkit-1/localauthority/50-local.d/power-management.pkla

Copie e cole o seguinte:

[Disable shutdown/restart for users jim jane]
Identity=unix-user:jim;unix-user:jane
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

[Disable suspend/hibernate for users jim jane]
Identity=unix-user:a;unix-user:vvpinker
Action=org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
    
por Sepero 30.10.2015 / 13:11