为什么我得到权限被拒绝的输出为什么我运行 pkexec /opt/lampp/manager-linux-x64.run ?正常吗?

为什么我得到权限被拒绝的输出为什么我运行 pkexec /opt/lampp/manager-linux-x64.run ?正常吗?

我正在关注一个关联在“显示所有应用程序”部分添加 Xampp 服务器,通常我们可以在其中看到安装的所有 GUI 应用程序。

但 Xampp 的情况有所不同。我们必须手动做事。所以我使用以下命令打开该文件:

pkexec nano /usr/share/applications/xampp-control-panel.desktop

因为我不能使用这个:

007@bond:~$ pkexec gedit /usr/share/applications/xampp-control-panel.desktop

Unable to init server: Could not connect: Connection refused

(org.gnome.gedit:17349): Gtk-WARNING **: 20:18:25.529: cannot open display: 

无论如何,当我尝试检查 Xampp 是否运行 pkexec 时,我收到此错误:

007@bond:~$ Exec=pkexec /opt/lampp/manager-linux-x64.run
bash: /opt/lampp/manager-linux-x64.run: Permission denied

我的问题/疑问:

  1. 不是执行程序是替代格克苏多?那为什么有时不起作用呢?

答案1

pkexec命令被使用在图形用户界面中打开一个通常只有 root 可以写入的文件。例如,如果您想使用gedit打开文件,则应该使用pkexec它。

但是,您尝试打开它时出现的错误粘贴pkexec表明您很可能不在 GUI 中,因为该$DISPLAY变量为空(根据该消息):

Gtk-WARNING **: 20:18:25.529: cannot open display: 

您可能在 GUI 中,但不知何故丢失了设置$DISPLAY。例如,如果您通过 ssh 连接到另一台计算机,则需要使用 ssh 的 X11 转发选项(-X或者可能-Y)来转发 GUI 显示,以便该计算机上的客户端可以在您的计算机上显示。

如果您不介意使用终端文本模式编辑器,例如nano,则只需直接使用sudo

$ sudo nano /usr/share/applications/xampp-control-panel.desktop

或者,更好的是,如果您已正确配置编辑器,则使用sudoedit(或等效的sudo -e)与要编辑的文件的路径一起使用,在这种情况下,sudo将创建您可以编辑的文件的副本,然后以您的方式打开编辑器非特权用户,最后将修改的内容复制回原来的位置,覆盖你要修改的文件。

相关内容