我的办公室里有一组 Ubuntu Trusty 台式电脑,通常我会通过 ssh 连接到这些电脑,然后从命令行远程安装更新。不幸的是,有时本地用户会决定关闭这些电脑,从而中断更新过程。
我想阻止这些用户在 SSH 会话处于活动状态时关闭、重启或挂起他们的 PC。我该怎么做?
我试过了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 用户 - 后果是什么?