需要 sudo 密码才能关闭一个会话

需要 sudo 密码才能关闭一个会话

我有一台运行 Ubuntu 的计算机,多人使用。它经常处于关机状态。有时,我想使用网络唤醒启动它,通过 ssh 连接并在后台启动一项任务。我不希望 PC 在执行这项任务时关机。

但是,由于可能有多人使用这台 PC,因此有人可能会走到机器前,登录、查看电子邮件或执行其他操作,然后关闭 PC。或者,有人可能会注意到它已打开并显示 GDM 登录屏幕,然后决定关闭它。

有没有办法防止这种情况发生?不必完全杜绝这种情况:只需让计算机弹出一个窗口,询问“您真的确定(作业正在后台运行)吗?”就足够了。但是,它必须既可以在登录后的 Gnome 菜单上运行,也可以在 GDM 屏幕上运行。

答案1

您可以在登录时从 GDM 和菜单中禁用它。

编辑/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy并在那里说

<allow_active>yes</allow_active>

将其更改为

<allow_active>auth_admin_keep</allow_active>

因此该文件将如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">

<!--
Policy definitions for ConsoleKit
-->

<policyconfig>

  <action id="org.freedesktop.consolekit.system.stop">
    <description>Stop the system</description>
    <message>System policy prevents stopping the system</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>no</allow_active>
    </defaults>
  </action>

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>no</allow_active>
    </defaults>
  </action>

  <action id="org.freedesktop.consolekit.system.restart">
    <description>Restart the system</description>
    <message>System policy prevents restarting the system</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

</policyconfig>

笔记:你不需要更改最后两部分(它们影响重启),但我想如果您不想让某人关闭计算机,您也不希望他们重新启动计算机。

为了更快地完成此操作,您可以创建此文件的两个版本(一个允许普通用户关闭计算机,另一个不允许)在您的主目录中的某个地方,并有一个脚本将其中一个复制到 /usr/share/polkit-1/actions/

答案2

对于 gdm,我认为有一种方法可以禁用系统控制,但我不知道如何操作。对于 gnome,您可以使用命令“gksudo halt”创建启动器。如果您想关闭计算机,它会询问密码。

相关内容