Gnome 3 - rootでコマンドを実行するためのカスタムキーボードショートカット?

Gnome 3 - rootでコマンドを実行するためのカスタムキーボードショートカット?

私のキーボードバックライトファンクションキーが機能していないようで、rootとして実行する必要があるキーボードの明るさを変更するスクリプトを作成しました。そう呼んでいます...

sudo /usr/bin/local/backlight inc
sudo /usr/bin/local/backlight dec 

これは端末ではうまく機能しますが、キーボード設定で作成したカスタムキーボードショートカットを使用するコマンドでは機能しません。

ここで推測するだけで問題は、キーボードショートカットを介して呼び出すと、コマンドが実際に私のユーザーではなく他の人として実行され、これがsudoersファイルに表示されないことです。

ベストアンサー1

Gnome 3は次のプログラムを使用します。ポルキットしたがって、実行可能ファイルをrootとして実行する正しい方法は次のようになります。プログラムの実行:

pkexecを使用すると、特権ユーザーは他のユーザーとしてPROGRAMを実行できます。ユーザー名を指定しないと、プログラムは管理スーパーユーザーのrootとして実行されます。

アクティブセッションのユーザーにrootとしてコマンドを実行する権限を付与するには、次のファイルを使用して上記のXML仕様に従って新しいタスクを定義する必要があります。/usr/share/polkit-1/actionsorg.fedora.pkexec.kbback.policy

コンテンツ/usr/share/polkit-1/actions/org.fedora.pkexec.kbback.policy:

<?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>

  <icon_name>input-keyboard</icon_name>
  <action id="org.fedora.pkexec.kbback">
    <message>Authentication is required to Change Keyboard Backlight</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/backlight</annotate>
  </action>

</policyconfig>

次のステップは、GNOMEキーボード設定でコマンドをキーボードショートカットに割り当てることです。

pkexec /usr/local/bin/backlight inc
pkexec /usr/local/bin/backlight dec 

(注:実行ファイルパスを使用しました/usr/local/bin/backlight。実行ファイルパスが異なる場合は、作業ファイルと両方のコマンドを変更する必要があります。)

おすすめ記事