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

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

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

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

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

更新:我已切换到 gnome3,现在我很高兴,唯一缺少的是搜索功能。

答案1

如果你希望应用程序始终以 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
    
  5. 节省

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

将快捷列表选项添加到“以 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

答案2

因为这是一个老问题,有一个老答案;为了补充@edm 的惊人解释。

从 Ubuntu 18.04 及更高版本开始,gksudo ( gksu) 已弃用,因此在官方存储库中没有安装候选项。另一种方法是使用 pkexec。

编辑文件/usr/share/applications/APPNAME.desktop并更改行

Exec=APP_COMMAND

Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY APP_COMMAND

更多详情pkexec 在这里

答案3

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

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

您的姓名字段可能会显示:

sudo 你的应用程序

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

我不太清楚 Unity Launcher 与 Main Menu 的区别。也许这个有帮助?

祝你好运

答案4

作为对这里答案中描述的繁琐要求的快速而简单的替代方案,我养成了执行以下操作的习惯......

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

    sudo -i nautilus也有效。)

生成的窗口属于 sudo 保护范围,因此您可以使用它以 sudo-root 权限随心所欲地访问和启动文件,直到它关闭。这对于您不需要更永久的解决方案的临时情况非常有用。例如,我经常使用它来将压缩文件提取到受保护的系统文件夹中。

相关内容