如何以根用户身份运行应用程序?


13

我对Kate和Kwrite有一些奇怪的问题。当我单击“ 打开文件”时,它因分段错误而崩溃。

我是Linux的新手,我认为问题是我没有以root用户身份运行该应用程序。

如何在Ubuntu中以root用户身份运行应用程序?这样做是不好的做法吗?整个根目录的目的是什么,即使我们需要如此频繁地使用根目录,但默认情况下也不使用根目录?


使用root来打开编辑器时,您可能会做一些非常有害的事情,所以请不要那样做;)2个不需要root的解决方案:尝试修复segmentation fault或使用其他编辑器(gedit是gnome的编辑器)。kate和kwrite是KDE程序(不是Gnome)。
Rinzwind

1
用文本编辑器可以完成哪些破坏性的事情。听起来很疯狂
l --''''''---------''''''''''''2012年

1
@АртёмЦарионов一方面,您可以以root身份编辑计算机用来启动操作系统或加载图形环境的文件,从而有效地破坏计算机的性能。
阿曼达

Answers:


15

以超级用户身份运行程序非常简单。

对于控制台程序使用

sudo <program name>

如果是GUI应用程序,请使用

gksudo <program name>

13

类似UNIX的操作系统(包括Linux)使用称为特权分离的概念来确保系统保持安全。UNIX从一开始就被设计为多用户系统-即,它被设计为使许多人可以一次使用运行UNIX的计算机。因为大多数用户不需要修改核心系统,所以只有系统管理员才具有该特权。传统上,该特权用户称为root。(根非常类似于Windows中的管理员。)

这在几个层面上都是有意义的。通常,将端口暴露给其他(可能是恶意)计算机的Web服务器或其他进程将以其自己的用户身份运行(Apache以user身份运行nobody),因此,即使Web服务器程序被黑客入侵,攻击者也无法对其进行破坏整个机器非常容易。甚至对于大多数单用户计算机(例如台式机)来说,这都是有意义的:例如,如果您家庭中的其他成员设法以某种方式运行rm -rf /不要运行),他们将无权删除系统上的每个文件,例如如果没有特权分离之类的东西,他们就会这样做。

您可以使用几个命令来提升特权。sudo存在该命令的目的是在您需要root级特权来管理系统时临时为您提供root级特权。您也可以使用命令gksudosu。仅当您知道root的密码时,才可以使用后者;如果您的帐户无权使用,则后者是一个不错的选择sudo

root用户可以在系统上执行任何操作,几乎没有例外。因此,即使您偶然请求某些内容,即使对系统的健康有害,也不会发出警告或几乎没有警告。这就是为什么最好的做法是以普通用户的身份进行大多数活动,并仅在需要时才使用root用户,例如在安装程序时。

您无需使用root即可消除分段错误。如果只有root用户可以修复segfault,则该程序存在错误。程序不应因为没有root而失败。


我遇到了这种错误,通常与文件许可有关。使用root就像拿大锤把花生弄碎。更好地标识文件并决定是否根据需要更改所有权或权限。例如,我有一个admin文件组,其他人不需要更新或访问。

5

除了前面提到的有关sudo和gksudo的答案外,是的,除非以管理员身份运行程序,否则绝对要以root身份运行程序是不正确的做法。

请尝试找到您为什么程序崩溃。如果需要,请寻求他人的帮助。


2

您也可以/usr/share/applications在ubuntu中进入并编辑您要运行的应用程序的启动文件。
就像我编辑的文件一样github atom,通常我使用通配符来查找这样的文件

sudo nano atom*

这将打开atom.desktop文件,现在找到Exec命令并在gksudo前面添加。例如,

之前

Exec=/usr/share/atom/atom %U  

Exec=gksudo -k -u root /usr/share/atom/atom %U

现在,只要启动该应用程序,它将要求输入root密码。


好吧,我在Tomcat服务器中看不到这样的文件。我必须以这种方式运行GUI应用程序:每天都运行“ sudo ./manager-linux-x64.run”,我知道这不是一件好事。但是pkexec在此应用程序上不起作用。
Prabesh bhattarai
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.