编辑.desktop文件以root身份运行可执行文件?

时间:2014-05-06 15:56:28

标签: c linux ubuntu debian xfce

我已将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命令。我非常感谢你的帮助。

3 个答案:

答案 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