如何从Unity Launcher以root身份启动应用程序?


81

我主要是在寻找一种将应用程序固定到Unity启动栏并以root用户身份运行的方法。

当前,即使我使用sudo启动该应用程序,并在启动后将其固定,下一次它将以当前用户身份启动。

很遗憾,但是没有上下文菜单选项“以...运行”。

更新:我切换到gnome3,现在很高兴,我只缺少搜索。


如果您知道以root用户身份运行图形应用程序的风险,并且仍然希望继续,请按以下步骤1进行操作:askubuntu.com/a/118483/41562
edm

您不明白这个问题,我知道该如何使用,sudo并且已经对其进行了调整。问题是关于如何为我要作为root用户运行的应用程序创建通往Ubuntu Unity启动器的快捷方式。
sorin 2012年

对于统一发射器,我不知道。但是,如果您的桌面上有文件,并且希望以gksu的形式运行它,则可以安装“ nautilus execute”扩展名。
好奇的徒弟

Answers:


89

如果您希望应用始终以root身份运行

  1. 正常将应用程序固定到启动器。

  2. 找到应用程序.desktop文件,该文件将位于以下任一文件中:

    • /usr/share/applications/APPNAME.desktop
    • ~/.local/share/applications/APPNAME.desktop
    • 或其他地方使用 locate .desktop|grep APPAME
  3. 用gedit打开:

    gksudo gedit /usr/share/applications/APPNAME.desktop
    
  4. 然后换行

    Exec=APP_COMMAND
    

    Exec=gksudo -k -u root APP_COMMAND
    

此命令还将保留您的环境,如果您需要连接到其他服务器并使用私钥,这将非常有用。

向“以root身份运行”添加快速列表选项

请执行上述步骤1、2和3

如果启动器当前没有其他快速列表选项,只需将其附加到文档末尾

X-Ayatana-Desktop-Shortcuts=Runroot

[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity

51
为什么设置一个简单的快捷键是如此的复杂?ubuntu的创作者怎么了?
Sliq

7
对于gksudo命令,您必须安装sudo apt-get install gksu
Arul

5
@Sliq被称为安全性……拥有一个以root用户身份执行而无需密码的桌面图标……是非常危险的……对我来说,这实际上是Linux的乐趣……如果我想要轻松生活。我将使用Windows作为我的主要系统...
愤怒84年

3
@sliq“为什么从cmd提示符下进行grep如此困难?Windows的创建者怎么了?”
-Ubuntu的

3
对于Ubuntu 18.XX已经过时了,有人可以提供更新的解决方案吗?
JRsz

4

在“系统”,“首选项”下的主菜单中,键入gksudo启动器属性的“命令”字段,例如:

/usr/bin/gksudo /usr/bin/yourapplication

您的姓名字段可能会说:

sudo yourapplication

因此用户知道他们可能会看到密码弹出窗口以及原因...

我不确定Unity Launcher与主菜单。也许有帮助吗?

祝好运


3
您可能知道,sudo不应该使用Straight 来运行图形应用程序,因为- root毕竟,您正在使用gksudo(这是一种好方法)。出于同样的原因,不建议sudo在名称字段中使用您的方式,因为这样做(1)在经验丰富的用户中给您的印象是您的启动器制作不当,以及(2)在经验不足的用户中给人印象。可以直接使用sudo来运行图形应用程序root
卡根

Unable to locate package gksudo-Ubuntu 18.04.1 LTS
8bitjunkie

2

以下内容似乎可以做同样的事情,而无需私有属性:

Actions=Runroot;Another

[Desktop Action Runroot]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND

[Desktop Action Another]
Name=Another action
Exec=whatever

Unable to locate package gksudo-Ubuntu 18.04.1 LTS
8bitjunkie

2

作为这里答案中描述的繁琐需求的一种快速简单的替代方法,我已经习惯于执行以下操作...

  1. 启动一个新的终端。
  2. 输入 gksu nautilus

    sudo -i nautilus也可以。)

结果窗口落在sudo伞下,因此您可以使用它来访问和启动具有sudo-root特权的文件,直到您关闭它为止。对于不需要永久解决方案的临时情况,这非常方便。例如,我通常使用它来将压缩文件提取到受保护的系统文件夹中。


2
sudo与图形应用程序一起使用不是一个好主意。gksu如果需要,请使用或sudo -i
赛斯2014年

2
@Seth:已更新。另外...关于为什么不被遗忘的一些解释,而不仅仅是暗中地说这不是一个好主意。
Syndog 2014年

关于该主题的有趣话题:crunchbang.org/forums/viewtopic.php?id=8468
Syndog


1

我将这个回复发布到@ Chris在评论中提出的问题:

假设您要创建一个启动程序,它将以根目录打开“文件管理器(nautilus)”。然后,您可以执行以下操作:

打开终端。类型:

sudo -H gedit /usr/share/applications/nautilus_root.desktop

按回车。询问时,输入您的登录密码,然后按Enter。这将打开gedit(文本编辑器)。现在,在其中粘贴以下内容:

[DesktopEntry]
Encoding=UTF-8
Name=Nautilus(Root)
Comment=FileManager
Exec=gksu nautilus
Icon=file-manager
Categories=System;
Type=Application
Terminal=0

现在,保存并退出。大功告成 现在,如果您在破折号上搜索,那么您将找到一个新的启动器“ Nautilus(Root)”。单击此按钮将询问您密码,并且在身份验证后将以root用户身份打开nautilus。

注意:运行“ Nautilus(Root)”时要小心。在这种模式下,您可以删除几乎所有内容/并破坏系统。


0

这可能是对丹尼尔的解决方案的评论。即使在Ubuntu 15.04中,它也对我有效。Exec=gksu "nautilus --new-window"由于额外的参数,我不得不将命令放在引号之间 。另外,以某种方式,我不知道为什么,我必须直接编辑启动器以保留原始菜单(以及新选项)。如果您拖动自己的启动器,它将被注册,但是您将没有相同的菜单。

在Ubuntu 15.04中,nautilus的启动器为usr/share/applications/org.gnome.Nautilus.desktop。您必须使用命令行来查看真实文件名。

进一步的研究使我找到了我认为是更好的选择:http : //ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/。不必完全以Root身份打开Nautilus,而是允许您在Nautilus中以Root身份打开所选目录。无论如何,我检查了一下,这两个选项是兼容的。如果您将Nautilus作为Root打开,然后使用第二个选项作为Root打开目录,它只是在不询问密码的情况下将其打开。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.