当前位置: 首页>>技术教程>>正文


permissions – 如何让/sbin/shutdown、/sbin/reboot 等在 16.04 中再次需要 sudo?

, , , ,

问题描述

无论出于何种原因,我们不再需要成为根用户(或使用 sudo )来运行 /sbin/shutdown/sbin/reboot 等。

这似乎是因为这些可执行文件现在是指向 /bin/systemctl 的符号链接,它可以像普通用户一样处理所有事情。

但是,如果我希望 shutdownreboot 再次需要 root 身份验证怎么办?我怎样才能做到这一点?

最佳答案

Systemd 确实处理 shutdownreboot 和其他命令,并且 the default privileges assigned 是允许的。要更改此设置,您需要创建一个 Polkit 规则。在 /etc/polkit-1/localauthority/50-local.d(比如 confirm-shutdown.pkla)中创建一个 .pkla 文件,其中包含:

[Confirm shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.*
ResultActive=auth_admin_keep

各种shutdown、reboot等命令,用Polkit术语来说就是org.freedesktop.login1中的动作,例如org.freedesktop.login1.power-offorg.freedesktop.login1.reboot等。这里具体的问题是默认配置,在/usr/share/polkit-1/actions/org.freedesktop.login1.policy中:

<action id="org.freedesktop.login1.power-off">
        <description>Power off the system</description>
        ...
        <defaults>
                <allow_any>auth_admin_keep</allow_any>
                <allow_inactive>auth_admin_keep</allow_inactive>
                <allow_active>yes</allow_active>
        </defaults>

请注意,它允许活动用户关机、重启等。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13213.html,未经允许,请勿转载。