我主要想找到一种方法将应用程序固定到 Unity 启动栏并以 root 身份运行它。
目前,即使我使用 sudo 启动应用程序,并在启动后将其固定,它下次也会以当前用户身份启动。
遗憾的是,没有上下文菜单选项“以...身份运行”。
更新:我已切换到 gnome3,现在我很高兴,唯一缺少的是搜索功能。
答案1
如果你希望应用程序始终以 root 身份运行
像平常一样将应用程序固定到启动器。
找到应用程序的 .desktop 文件,该文件位于:
/usr/share/applications/APPNAME.desktop
~/.local/share/applications/APPNAME.desktop
- 或者在其他地方使用
locate .desktop|grep APPAME
使用 gedit 打开:
gksudo gedit /usr/share/applications/APPNAME.desktop
然后改变线
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
答案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
作为对这里答案中描述的繁琐要求的快速而简单的替代方案,我养成了执行以下操作的习惯......
- 启动一个新终端。
进入
gksu nautilus
(
sudo -i nautilus
也有效。)
生成的窗口属于 sudo 保护范围,因此您可以使用它以 sudo-root 权限随心所欲地访问和启动文件,直到它关闭。这对于您不需要更永久的解决方案的临时情况非常有用。例如,我经常使用它来将压缩文件提取到受保护的系统文件夹中。