Fedora 18 禁用休眠和挂起

Fedora 18 禁用休眠和挂起

我最近在工作站(不是笔记本电脑)上安装了新的 Fedora 18、LXDE 旋转版。

我想禁用休眠和挂起功能,并将它们从 UI 中的“注销”菜单中删除。

/etc/polkit-1/localauthority/50-local.d/50-disable-suspend.pkla在 F17 及更早版本中,只需添加包含以下内容的文件即可轻松完成此操作:

[Disable Suspend]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate;org.freedesktop.upower.suspend
ResultAny=no
ResultInactive=no
ResultActive=no

这样做会删除菜单项,只留下注销、重启、关机和取消。

我还找到了修改文件的说明/usr/share/polkit-1/actions/org.freedesktop.upower.policy,将两个值更改为:

<allow_active>no</allow_active>

这两种方法都不适用于 F-18。

对于 F17 及更早版本,后一种方法的问题是,当 upower 更新时文件可能会被覆盖,但即使这样也是可以接受的。

删除pm-utils似乎也是理想的,但我无法删除,pm-utils因为libvirt间接依赖于它。

有人知道这一点吗?

答案1

根据手册页:

polkit 本地权限不再存在。现有配置文件仍然有效;请参阅 pkla-admin-identities(8) 和 pkla-check-authorization(8) 了解配置格式的描述。

我很确定“现有的配置文件受到尊重”是一个谎言。

Polkit 的 Arch Linux 维基页面显示一种新方法:

以下规则禁用所有用户的挂起和休眠功能。

/etc/polkit-1/rules.d/10-disable-suspend.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" ||
        action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id == "org.freedesktop.login1.hibernate" ||
        action.id == "org.freedesktop.login1.hibernate-multiple-sessions") {
        return polkit.Result.NO;
    }
});

该规则在我 Fedora 19 上有效。

答案2

对于 F17 及更早版本,后一种方法的问题是,当 upower 更新时文件可能会被覆盖,但即使这样也是可以接受的。

您可以通过设置“i”属性(chattr +i /path/to/file)来保护这些文件不被覆盖,当然是以 root 身份执行此操作。

相关内容