“systemctl suspend” 与 “systemctl hibernate” 权限

“systemctl suspend” 与 “systemctl hibernate” 权限

当我在终端中输入时systemctl suspend,我的电脑会毫无问题地进入睡眠模式。但是,当我输入时systemctl hibernate,它首先会打印此错误

Failed to hibernate system via logind: Access denied 

然后要求输入密码,说明 hibernate.target 需要身份验证。

那么,知道如何才能systemctl hibernate拥有同样的行为吗systemctl suspend

答案1

我新安装的 Ubuntu 18.04 和 19.10 也收到同样的消息。这可能是因为您需要权限才能执行systemctl hibernate。为了解决这个问题,我做了:

    sudo visudo -f /etc/sudoers.d/hibernate

并添加以下行:

    %adm    ALL=NOPASSWD: /bin/systemctl hibernate, /usr/bin/systemctl hibernate

注意:我的用户是 adm 组的成员。或者,您可以添加新组,将所有相关用户添加到该组,然后替换%adm%<your-group>

我不确定这是否是最佳做法,但它为我解决了这个问题。

此外,您需要具有与 RAM 大小相等的最小交换空间(交换文件或交换分区)才能使计算机休眠。

编辑:为 visudo 添加 -f 参数

相关内容