我正在尝试创建一个桌面快捷方式,通过执行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 已被弃用,并且按照答案之一的建议使用pkexec仍然提示输入密码。
解决方案似乎是使用pkexec和PolicyKit配置。此答案涵盖了有关 PolicyKit 设置的更多详细信息。它适用于无需密码即可执行 GUI 应用程序,但也主要适用于非图形应用程序。
就我而言,更新了 .desktop 文件以将sudo替换为pkexec。Terminal=可以设置为true或false:
然后,必须在/usr/share/polkit-1/actions/com.ubuntu.pkexec.ddcutil.policy中创建一个 PolicyKit 条目:
如果需要进行调试, /var/log/auth.log似乎是记录 PolicyKit 消息的位置。