我在使用 Kate 和 Kwrite 时遇到了一些奇怪的问题。当我点击打开文件,它会因分段错误而崩溃。
我是 Linux 的完全新手,我认为问题在于我没有以 root 身份运行该应用程序。
如何在 Ubuntu 中以 root 身份运行应用程序?这样做是不是不好?root 的目的是什么,尽管我们需要频繁使用 root,但它并没有被用作默认权限?
答案1
以 root 身份运行程序非常简单。
对于控制台程序使用
sudo <program name>
如果它是 GUI 应用程序,请使用
gksudo <program name>
答案2
类 UNIX 操作系统(包括 Linux)使用一个称为特权分离以确保系统保持安全。UNIX 从一开始就被设计为多用户系统 - 也就是说,它被设计为许多人可以同时使用一台运行 UNIX 的计算机。因为大多数用户不需要能够修改核心系统,所以只有系统管理员才应该有这个权限。这个特权用户传统上被称为根. (Root 很像 Windows 中的管理员。)
这在多个层面上都是有意义的。通常,向其他(可能是恶意的)计算机公开端口的 Web 服务器或其他进程将以自己的用户身份运行(Apache 以用户 运行nobody
),这样即使 Web 服务器程序被黑客入侵,攻击者也无法轻易破坏整个机器。这甚至对大多数单用户计算机(如台式机)也是有意义的:例如,如果您家庭的其他成员以某种方式设法运行rm -rf /
(不要运行它),他们将无权删除系统上的每个文件,就好像没有特权分离一样,他们也会这样做。
您可以使用多个命令来提升您的权限。 命令sudo
用于在您需要管理系统时临时授予您 root 级权限。 您还可以使用命令gksudo
或su
。 后者仅在您知道 root 密码的情况下才可使用,如果您的帐户无权使用 ,则是一个不错的选择sudo
。
root 用户可以做任何事情在系统上,几乎没有例外。因此,即使您意外请求了某些内容,也会在几乎没有警告的情况下执行,即使这对系统的健康有害。这就是为什么以普通用户身份执行大多数活动并仅在需要时使用 root 是很好的做法,例如在安装程序时。
您不需要使用 root 来消除段错误。如果 root 是修复段错误的唯一方法,那么程序就有错误。程序不应该因为没有 root 而失败。
答案3
除了前面关于 sudo 和 gksudo 的答案之外,是的,以 root 身份运行程序绝对是一种不好的做法,除非这是一个管理程序。
请尝试找出程序崩溃的原因。如有必要,请寻求他人的帮助。
答案4
如果你收到如下错误:
sudo: program-name: command not found
当这样调用时:
sudo program-name args
例如:
sudo dotnet run --configuration Release
sudo: dotnet: command not found
您可以使用以下方式获取程序的路径
which program-name
然后使用该路径:
sudo path_to_program args
例子:
sudo $(which dotnet) --configuration Release