Lee*_*Lee 1 xampp .desktop 18.04
我使用的是 Ubuntu 18.04。我已经安装了 XAMPP 并创建了一个 .desktop 文件来运行它。
[Desktop Entry]
Type=Application
Name=XAMPP Control Panel
Version=7.3.0.0
Exec=sudo -i python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py
Encoding=UTF-8
Terminal=false
Comment=Start and Stop XAMPP
Icon=/home/lee/.local/favicon.ico
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因它不会运行。“Exec”行在 CL 上运行良好。我已将其设置为执行。有任何想法吗?
要在 Ubuntu 等默认情况下禁用 root 帐户的发行版中运行应用程序,sudo
请使用。当sudo
在终端中运行命令时,它会要求输入密码。但当它用于桌面条目时,默认情况下无法提供该功能。但是,要使用桌面条目以超级用户身份运行应用程序,可以采用以下方法。
Terminal
密钥:该Terminal
密钥允许应用程序在终端中执行,即,中使用的命令Exec
行将像在终端中执行一样运行,打开一个新的终端窗口并允许用户输入密码。密钥应该像这样附加:
Terminal=true\n
Run Code Online (Sandbox Code Playgroud)\n\n但这个方法有一个问题。由于它打开了额外的应用程序,即终端窗口,因此会消耗额外的 RAM 和 CPU 周期。
pkexec
:另一种方法是使用pkexec
. pkexec
打开一个图形窗口以提供密码。但它不允许以另一个用户身份运行 X11 应用程序,因为未设置$DISPLAY
和环境变量(参考: Radu R\xc4\x83deanu\'s 答案)。$XAUTHORITY
但是,变量不会在桌面条目中展开,因为它不是 shell。因此,您可以使用shell运行命令,即
\n\nExec=sh -c \'pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /path/to/executable\'\n
Run Code Online (Sandbox Code Playgroud)\n\n您可以使用bash
或任何受支持的 shell 来代替bash
.
但这会创建一个 sh 或 bash 进程,该进程将等待应用程序退出,从而消耗一些内存。
/etc/sudoers
:某些应用程序(例如 XAMPP)需要以超级用户身份运行。您可以通过编辑允许某些特定应用程序运行,甚至无需输入密码/etc/sudoers
。
要允许所有 sudo 者无需密码即可运行应用程序,请将以下行附加到/etc/sudoers
.
%sudo ALL = (root) NOPASSWD: /path/to/application\n
Run Code Online (Sandbox Code Playgroud)要允许 sudoer 中的特定用户无需密码即可运行应用程序,请附加
\n\nUSER ALL = (root) NOPASSWD: /path/to/application\n
Run Code Online (Sandbox Code Playgroud)\n\n例如:
\n\nkulfy ALL = (root) NOPASSWD: /opt/lampp/manager-linux-x64.run\n
Run Code Online (Sandbox Code Playgroud)要通过命令行追加,您可以使用tee
with 选项a
。例子:
echo \'kulfy ALL = (root) NOPASSWD: /opt/lampp/manager-linux-x64.run\' | sudo tee -a /etc/sudoers\n
Run Code Online (Sandbox Code Playgroud)\n\n警告:不要覆盖 的内容/etc/sudoers
,否则您将无法执行 sudo 操作。仅追加上面的行。建议对该文件进行备份。
脚注:要使用 XAMPP 控制面板,应执行 manager-linux-x64.run 而不是 xampp-control-panel.py。早期的是一个可执行的二进制文件,负责显示GUI,而Python脚本是它的一部分,即它不是完整的控制面板。
\n 归档时间: |
|
查看次数: |
3066 次 |
最近记录: |