下载 netbeans 10.0 后,我教我创建一个桌面文件来启动它,所以,我不必sudo /home/abc/Downloads/netbeans/bin/netbeans
每次都运行。
我创建了小脚本来以管理员权限启动 netbeans。
#!/bin/sh
cd /home/abc/Downloads/netbeans/bin/
echo "password" | sudo -S ./netbeans
我把这个文件/usr/bin/
和
创建 netbeans.desktop 文件如下
[Desktop Entry]
Version=1.0
Type=Application
Terminal=False
Exec=/usr/bin/netbeans
Name=Netbeans
Comment=Java IDE
Icon=/home/abc/Downloads/netbeans/nb/netbeans.icns
通过键入
netbeans
在终端中,它以管理员权限打开 netbeans。
但是单击桌面文件或 shell 文件没有任何响应
对不起,如果这很愚蠢,我是新手。
编辑
尝试了此处所述的所有内容 =>如何在脚本中运行“sudo”命令?但没有任何效果。
正如@dessert 建议使用的那样pkexec
。它有效,但带来了另一个问题。
/home/abc/Downloads/netbeans/platform/lib/nbexec: WARNING: environment variable DISPLAY is not set
我认为 netbeans 需要终端才能运行。所以我尝试了xdf-open
,gksu
但没有一个起作用。请帮忙!
绝不能以 root 身份运行绝大多数用户应用程序。如果需要 root 权限,则允许用户仅通过单击启动器而无需任何形式的身份验证即可运行具有 root 权限的应用程序是非常糟糕的做法。
幸运的是,在终端之外以管理员权限运行脚本并不容易。GUI 菜单系统不允许在没有任何安全措施的情况下轻松创建以 root 权限启动程序的启动器。
在极少数情况下,需要让图形用户界面执行管理操作。以前,该
gksudo
命令只允许具有 root 权限的用户启动任何具有 root 权限的图形应用程序。这种糟糕的安全模型已被贬低以支持更安全的系统,这些系统要么 1)根本不需要图形用户界面以 root 身份运行,但仍允许访问系统文件和文件夹,或 2)仍然运行整个图形应用程序作为 root,但具有更强的安全性。1) 被“admin://”URI 覆盖。应用程序可以使用这样
gedit
的nautilus
URI 启动,例如使用这种方法,gedit 本身只是作为普通用户运行。系统为其提供了系统文件的临时副本,在本例中为 /etc/fstab。用户保存临时副本后,系统会更新原始 /etc/fstab。“磁盘”也是这样设计的。应用程序,即图形用户界面,随时以普通用户身份运行,但在即将执行管理任务时请求管理员密码。
2) 通过
pkexec
. 在这里,经过身份验证后,整个应用程序以 root 权限启动。这也是gksudo
过去的工作方式。然而,最大的区别在于,另外,必须有一个关于应用程序的系统策略文件。因此,只有以前授权的应用程序才能由特权用户以 root 身份启动。