4

I recently installed the new Fedora 18, LXDE spin on a workstation (not a laptop).

I want to disable the hibernate and suspend functions, and remove them from the "Logout" menu in the UI.

In F17 and earlier, this was easily done by adding a file /etc/polkit-1/localauthority/50-local.d/50-disable-suspend.pkla with the contents:

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

Doing so would remove the menu entries, leaving Logout, Reboot, Shutdown and Cancel.

I also found instructions to modify the file /usr/share/polkit-1/actions/org.freedesktop.upower.policy, changing two values to:

<allow_active>no</allow_active>

Neither works for F-18.

The problem with the latter approach for F17 and earlier was that the file might be overwritten when upower is updated, but even that would be acceptable.

Removing pm-utils also seemed ideal, but I can't remove pm-utils because libvirt indirectly depends on it.

Has anyone figured this out?

2 Answers2

1

According to the man page:

The polkit Local Authority no longer exists. Existing configuration files are honored; see pkla-admin-identities(8) and pkla-check-authorization(8) for description of the configuration format.

I'm pretty sure "existing configuration files are honored" is a lie.

The Arch Linux wiki page for Polkit shows a new way:

The following rule disables suspend and hibernate for all users.

/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;
    }
});

That rule works for me on Fedora 19.

Brendan Long
  • 1,808
-1

The problem with the latter approach for F17 and earlier was that the file might be overwritten when upower is updated, but even that would be acceptable.

U can protect those files from overwriting by setting 'i' attribute (chattr +i /path/to/file), doing this as root of course.