パスワードを要求せずにルートとしてコマンドラインプログラムを起動するデスクトップショートカットを作成する方法

パスワードを要求せずにルートとしてコマンドラインプログラムを起動するデスクトップショートカットを作成する方法

sudo /usr/bin/ddcutil -d 1 setvcp 60 0xFパスワードを要求せずに実行することでモニター入力を変更するデスクトップショートカットを作成しようとしています。sudoers.dディレクトリにあり、コマンドがターミナルから実行される場合、予想どおりパスワードは必要ありませんが、ショートカットをクリックするとパスワードの入力を求められます。このショートカットをパスワードなしで実行するには、どうすればよいですか?

.desktop ファイル:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Windows 10
Comment=Switch Display to Windows Virtual Machine
Icon=/usr/share/icons/windows-icon.png
Terminal=true
Exec=sudo /usr/bin/ddcutil -d 1 setvcp 60 0xF

sudoers ファイル:

myusername ALL = NOPASSWD: /usr/bin/ddcutil

ソリューションここgksuは非推奨で使用しているため動作しませんpkexec代わりに、回答の 1 つで示唆されているように、パスワードの入力を求められます。

答え1

解決策としては、pkexecとともにポリシーキット構成。この答えPolicyKit 設定の詳細について説明します。これは、パスワードを要求せずに GUI アプリケーションを実行することを目的としていますが、主に非グラフィカル アプリケーションにも適用されます。

私の場合、.desktopファイルが更新され、須藤pkexecターミナル=どちらかに設定できます真実または間違い:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Windows 10
Comment=Switch Display to Windows Virtual Machine
Icon=/usr/share/icons/windows-icon.png
Terminal=false
Exec=pkexec /usr/bin/ddcutil -d 1 setvcp 60 0xF

その後、PolicyKitエントリを/usr/share/polkit-1/actions/com.ubuntu.pkexec.ddcutil.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>

  <action id="com.ubuntu.pkexec.ddcutil">
    <defaults>
      <allow_active>yes</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/ddcutil</annotate>
  </action>

</policyconfig>

ログファイルデバッグに必要な場合に PolicyKit メッセージが記録される場所のようです。

関連情報