我已经将一个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命令。我非常感谢你的帮助。
5条答案
按热度按时间x6h2sr281#
我最终使用(安装gksu后)
这将启动一个图形sudo提示符,它足以满足我的需要。
mnemlml82#
这就是权限中的
setuid
位的作用。它使可执行文件以文件所有者的权限运行。这只对实际的可执行文件有效,对shell脚本无效!请小心使用此选项,因为无论由谁执行,它都会以root身份执行该程序。您可以通过将其设置为您的用户组来限制访问权限,并拒绝所有执行。
uyto3xhc3#
此方法不需要额外安装软件包。
Terminal=true
打开一个新的终端窗口,运行sudo -i
询问密码。然后,使用sh
运行程序,终端关闭,myprogram
在后台运行,因为它的末尾有一个&
。请求:请报告它是否能在您的操作系统下工作。测试条件:
inb24sb24#
askubuntu的
pkexec
解决方案:bvpmtnay5#
尝试将此添加到
.desktop
Path=/path/to/myprogram