
Eu tenho um grupo de desktops Ubuntu Trusty em meu escritório e geralmente faço ssh para eles e instalo atualizações remotamente a partir da linha de comando. Infelizmente, às vezes os usuários locais decidem desligar esses PCs, interrompendo o processo de atualização.
Gostaria de evitar que esses usuários desliguem, reinicializem ou suspendam seus PCs quando houver uma sessão SSH ativa. Como eu posso fazer isso?
Eu tentei molly-guard
, mas não impede que os usuários da GUI desliguem o sistema (isso não parece afetar os usuários da GUI).
Também vi esta pergunta, mas não entendi se ela também se aplica ao Ubuntu 14.04 LTS ou não (e não tenho certeza de como aplicá-la):
desabilitar desligamento/suspender se houver outro usuário logado via ssh
Responder1
Isso pode ser feito usando uma política PolKit, se você tiver privilégios de administrador.
Crie um .pkla
arquivo em /etc/polkit-1/localauthority/50-local.d
(digamos disable-shutdown.pkla
), contendo:
[Disable Shutdown, etc.]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
A -multiple-sessions
parte é para quando vários usuários estão logados – há ações semelhantes sem esse sufixo. Isso desativa essas ações da GUI, até onde eu sei.
Observe que este método bloqueia apenas comandos de reinicialização, etc., emitidos pela GUI. Para bloquear comandos de reinicialização, etc. da linha de comando, pode-se usar molly-guard - conforme explicado emDesativando o comando shutdown para todos os usuários, até mesmo root - consequências?