2

我已将 ac 程序编译为可执行文件,现在我想将其集成到 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 命令不正确。我非常感谢帮助。

4

3 回答 3

6

我最终使用(安装 gksu 后)

Exec = gksu myprogram

这会启动一个图形 sudo 提示符,这足以满足我的需要。

于 2014-05-06T16:50:44.093 回答
0

这就是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
于 2014-05-06T16:30:55.653 回答
-2

尝试将此添加到.desktop

Path=/path/to/myprogram

于 2014-05-06T16:48:47.630 回答