linux - Gnome shell 提权

标签 linux gnome-3 gnome-shell gnome-shell-extensions

我正在构建一个 Gnome shell 扩展,我希望能够使用提升的权限来做一些事情。所以,我想我需要使用“政策工具包”,但我不知道该怎么做。

所以,假设我想做一些像 ifconfig eth0 downifconfig eth0 up

我可以从终端运行:pkexec ifconfig eth0 down,它会提示输入密码,然后执行此操作。

但是,我应该如何在扩展程序中执行此操作?

我很确定它与在/usr/share/polkit-1/actions 中创建文件有关,但我在互联网或其他地方找不到任何东西。

我希望能够将其设置为无需输入密码,并且扩展程序可以随时运行特定命令。

我知道允许运行任何命令是一个非常糟糕的主意。那不是我要的,我希望能够只运行一个程序/命令。

编辑:我不确定,但我认为不需要输入密码可能是不可能的。我只知道 sudo 第一次后一段时间不会要求输入密码,所以我有点想要类似的功能。不确定有什么可能。

最佳答案

我已经很久没有使用 PolicyKit,但据我所知,你确实必须在 actions/目录中创建一个文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

  <action id="org.freedesktop.policykit.pkexec.run-ifconfig">
    <description>Configure network</description>
    <message>Authentication is required to set ifconfig parameters</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>...</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/sbin/ifconfig</annotate>
  </action>

</policyconfig>

您必须更改 :

中的值
<allow_active>...</allow_active>

到你想要的值。选择一个值:

  • “否”将拒绝访问
  • "is"将隐含地允许访问
  • “auth_user”需要用户身份验证
  • “auth_admin”需要管理员身份验证。
  • “auth_user_keep”和“auth_admin_keep”的功能类似,但会在几分钟后保留身份验证。
  • 加上一些其他值,查看 here .

将 allow_active 键的值更改为“yes”应该会停止身份验证要求。

然后您需要根据需要调整操作文件并调用它。

雨果

关于linux - Gnome shell 提权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099593/

相关文章:

c++ - gnome 回退小程序 C++

Java 应用程序在 GNU/Linux Mint 的 alt-tab 列表中有模糊图标

gnome-shell - 将 "open with other application"显示为子菜单

linux - 无法通过 ssh 进入从快照创建的 ec2 实例

fedora - 如何更改在 Fedora 20 中切换工作区的快捷方式?

javascript - 如何使用 GJS 判断窗口是否最小化?

c++ - Gnome Shell 在使用多个屏幕时导致 QMenu 显示在错误的位置

linux - Mutt 跳过撰写菜单

linux - 本地 webapp 和 websocket 的 Nginx 设置

linux - 通过 SSH 连接到同一网络上的计算机