如何建立桌面快捷方式,以 root 身分啟動命令列程式而無需密碼

如何建立桌面快捷方式,以 root 身分啟動命令列程式而無需密碼

我正在嘗試創建一個桌面快捷方式,透過執行sudo /usr/bin/ddcutil -d 1 setvcp 60 0xF而不需要密碼來更改我的顯示器輸入。我已在sudoers.d目錄,如果從終端運行該命令,則不需要按預期輸入密碼,但是當我單擊快捷方式時,它會提示輸入密碼。如何使該快捷方式無需密碼即可運作?

.桌面檔案:

[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 已被棄用並使用執行程式相反,正如答案之一所建議的,仍然提示輸入密碼。

答案1

解決方案似乎是使用執行程式與一個政策工具包配置。這個答案涵蓋有關 PolicyKit 設定的更多詳細資訊。它適用於無需密碼即可執行 GUI 應用程序,但也主要適用於非圖形應用程式。

對於我的情況,.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=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>

/var/log/auth.log如果需要進行偵錯,似乎是記錄 PolicyKit 訊息的地方。

相關內容