我已将c程序编译成可执行文件,我现在想要将其集成到Debian 7.4 XFCE中的应用程序菜单中。为了在正常情况下运行应用程序,我需要输入
sudo myprogram
现在我创建了我的.desktop文件并将其放在/ usr / share / applications
中[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=myprogram
Comment=configuration loader
Exec=sudo loader
Icon=/usr/share/icons/hicolor/48x48/apps/myprogram.png
Terminal=false
Categories=Development;IDE
该项目按预期添加到我的应用程序菜单中,图标显示正确。但问题是,双击菜单项以启动应用程序不会做任何事情。
如果我导航到/ usr / bin(我放置了我的可执行文件)并输入“sudo myprogram”,程序将按预期启动。
如何解决此问题并从菜单启动程序?也许/ usr / bin不是放置它的正确位置,或者我有不正确的Exec命令。我非常感谢你的帮助。
答案 0 :(得分:4)
我最终使用(安装gksu之后)
Exec = gksu myprogram
这会启动一个图形sudo提示符,足以满足我的需求。
答案 1 :(得分:1)
这是权限中setuid
位的用途。它使可执行文件以文件所有者的权限运行。这仅适用于实际的可执行文件,而不适用于shell脚本!
sudo chmod u+s myprogram
sudo chown root myprogram
./myprogram # now runs as root
使用它时请小心,因为它总是以root身份执行该程序,无论执行者是谁。您可以通过将其设置为用户组来限制访问,并拒绝所有执行。
chgrp "${USER}" myprogram # provided you have individual groups set up
chmod a-x myprogram # deny all execute
答案 2 :(得分:0)
尝试将其添加到.desktop
Path=/path/to/myprogram