挂起前需要身份验证

ara*_*uzo 25 suspend policykit

自 Ubuntu 14.04 上次更新以来,当我按下笔记本电脑中的睡眠按钮时,会出现一个弹出窗口,其中显示“挂起系统需要身份验证”。

合上盖子时不需要密码。但是,当插入另一台显示器时,这不起作用。

有什么可以设置的(在 sudoers 或其他地方)来避免这个密码提示?

小智 19

  1. 在命令行中运行:

    locate -b org.freedesktop.login1.policy
    
    Run Code Online (Sandbox Code Playgroud)

    找到的文件是/usr/share/polkit-1/actions/org.freedesktop.login1.policy.

  2. 在文件中,近线

    <action id="org.freedesktop.login1.suspend">
    
    Run Code Online (Sandbox Code Playgroud)

    检查这些:

    <defaults>
        <allow_any>yes</allow_any>
        <allow_inactive>yes</allow_inactive>
        <allow_active>yes</allow_active>
    </defaults>
    
    Run Code Online (Sandbox Code Playgroud)

来源

  • 任何权威来源真的建议这样做吗?不应编辑`/usr/share` 中的文件;该前缀用于由软件包安装且未被用户修改的只读文件。正确的方法是将文件复制到另一个等效的位置,例如`/etc`,在那里允许编辑,然后在那里进行更改。最好解释为什么这些更改可以解决问题,即原始问题是什么 - 例如(在我的情况下)`auth_admin_keep` 的先前值意味着什么,以及为什么它不正确。 (7认同)
  • 它不再要求我输入密码,但我不记得做了任何事情,我有那些行 &lt;allow_any&gt;auth_admin_keep&lt;/allow_any&gt; 它们是什么意思?将它们更改为“是”是否有任何安全问题? (4认同)
  • 根据 [Arch Linux wiki](https://wiki.archlinux.org/index.php/Polkit#Configuration),编辑 `.policy` 文件不是正确的方法。 (2认同)

mja*_*mja 11

使用 Polkit

将自己添加到users分组依据

sudo usermod -aG users "$USER"
Run Code Online (Sandbox Code Playgroud)

完成以下步骤后,您需要重新启动计算机。

1. 如果 PolKit 版本 >= 0.106

您可以通过以下方式检查 Polkit 的版本: pkaction --version

如果 PolKit 版本 < 0.106,则没有 .rules文件,只有旧 文件.pkla.conf文件,因为那些 Polkit 版本没有 Javascript 解释器。

只需添加一个文件/etc/polkit-1/rules.d/85-suspend.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" &&
        subject.isInGroup("users")) {
        return polkit.Result.YES;
    }
});
Run Code Online (Sandbox Code Playgroud)

在终端中,输入:

sudo chmod 755 /etc/polkit-1/rules.d
sudo chmod 644 /etc/polkit-1/rules.d/85-suspend.rules
Run Code Online (Sandbox Code Playgroud)

2. 如果 PolKit 版本 < 0.106

在这种情况下,添加一个文件/var/lib/polkit-1/localauthority/50-local.d/50-enable-suspend-on-lockscreen.pkla

[Allow suspending in lockscreen]
Identity=unix-group:users
Action=org.freedesktop.login1.suspend
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

在 bash 中,输入:

sudo chmod 644 /var/lib/polkit-1/localauthority/50-local.d/50-enable-suspend-on-lockscreen.pkla
Run Code Online (Sandbox Code Playgroud)

更多关于 pklocalauthority

使用电源管理器设置(不确定它是否有效)

在 XFCE 电源管理器中:

  1. Security选项卡下:

    • 设置Automatically lock the session从不
    • 查看 Lock the screen when the system is going for sleep
  2. Display选项卡下,15 分钟后黑屏。要禁用的设置SleepSwitch off时间(变灰)。
  3. System选项卡下,将系统睡眠模式设置Suspend为半小时后。

参考: