Как отключить выключение или перезагрузку в 14.04 при подключении пользователей через SSH?

Как отключить выключение или перезагрузку в 14.04 при подключении пользователей через SSH?

У меня в офисе есть группа настольных ПК Ubuntu Trusty, и обычно я подключаюсь к ним по ssh и устанавливаю обновления удаленно из командной строки. К сожалению, иногда локальные пользователи решают выключить эти ПК, прерывая процесс обновления.

Я хотел бы запретить этим пользователям выключать, перезагружать или приостанавливать работу своих ПК, когда активен сеанс SSH. Как это сделать?

Я пробовал molly-guard, но это не мешает пользователям GUI выключать систему (похоже, это не влияет на пользователей GUI).
Я также видел этот вопрос, но не понял, применимо ли это также к Ubuntu 14.04 LTS или нет (и я не уверен, как это применить):
отключить выключение/приостановку, если другой пользователь вошел в систему через ssh

решение1

Это можно сделать с помощью политики PolKit, если у вас есть права администратора.

Создайте .pklaфайл /etc/polkit-1/localauthority/50-local.d(например disable-shutdown.pkla, ), содержащий:

[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

Эта -multiple-sessionsчасть для случая, когда в систему вошли несколько пользователей - есть похожие действия без этого суффикса. Это отключает эти действия из GUI, насколько я могу судить.

Обратите внимание, что этот метод блокирует только команды перезагрузки и т. п., выдаваемые из GUI. Чтобы заблокировать команды перезагрузки и т. п. из командной строки, можно использовать molly-guard - как описано вОтключение команды выключения для всех пользователей, даже root — последствия?

Связанный контент