为什么没有以 root 身份登录的选项?

Ren*_*h G 39 security root

为什么Ubuntu不允许GUI用户在系统启动时像Windows管理员一样以root身份登录?

为什么他们限制我们只能通过终端登录?

evg*_*eny 42

因为除非您确切地知道自己在做什么,否则不建议这样做。Root 是超级用户,这意味着它可以做任何事情——它只适用于管理任务。如果每个人(或大部分用户)都使用 root,日常任务可能会带来安全风险,该风险将被利用。想想 Windows - 99% 的恶意软件和病毒问题来自使用管理员帐户执行日常任务的人。

让我们看一个例子:

如果有人闯入您的系统并告诉它擦除您的磁盘怎么办?如果您以普通用户身份运行,则您(应该)能够删除的唯一文件是属于您的文件,而不是其他任何人。例如,如果您有其他人在使用计算机,那么无论您多么努力,他们的文件都不会被触及。这意味着您将无法更改任何系统文件,因此您的系统将保持坚如磐石且不受影响/未感染。

但是,如果您以 root 身份运行,则可以完全擦除硬盘驱动器,可能会对硬件本身造成一些损坏,并且通常会使系统无法使用。更正:任何可以在您的计算机(某些恶意网站或电子邮件附件)上以 root身份运行单个命令的人都可以这样做。

看看这篇不错的文章,它可能比我解释得更好。

是另一个。

您始终可以以超级用户身份使用sudo commandgksu command运行command,这两者都可以使用图形和命令行实用程序。sudo但是,通常用于 CLI,并且gksu是执行相同操作的图形密码提示。

在某种程度上,它们让你成为root暂时的——比不断以 root 身份运行并冒着不稳定的风险好得多。

  • Ubuntu 被设计为用户友好的,我怀疑通过禁止 root,他们消除了以 root 身份运行的普通用户(阅读:Linux 新手)的诱惑。 (6认同)
  • 我的评论有点错误。让我们这样说:通过禁止图形 root 登录,它可以防止人们以 root 身份运行,除非他们知道自己在做什么。也就是说,在我看来,只有知道并了解所有风险的有经验的用户才应该允许它。 (2认同)

Ric*_*rri 12

在标准的 Ubuntu 中,root不允许登录,无论是从 GDM(图形)登录管理器还是从文本控制台(即按Ctrl+ Alt+获得的控制台F1)。

为了执行root(即管理员)操作,您必须sudo在终端或任何等效的 GUI 中使用该命令:这些命令将询问您密码,然后执行请求的特权操作(并且只有那个)。

这种行为的原因是,正如其他人指出的那样,执行root操作本质上有风险的,并且真正需要root特权的操作数量相对较少:通过使用这种sudo方法,您大部分时间都在使用非特权帐户(即无害)运行给系统和其他用户),并在root真正需要时获得权力。

一个例子可能有助于澄清。假设你想在你的机器上安装一个新的服务(守护进程);这是相对较新的,您需要阅读它以及如何根据您的需要对其进行配置。您最终会大量浏览网页以查找信息、示例配置等,也许会通过一些 IRC 聊天来询问更多信息——这些都不需要root权限!最后,您只需要两个操作的特权访问:

  1. 安装新程序(即sudo apt-get install ...),以及
  2. 编辑默认配置

计算机安全中普遍接受的原则是始终使用尽可能少的权限级别来执行操作。-- 这降低了由于软件中的错误或操作员的错误而导致不良事件发生的风险。

Ubuntu 默认设置朝这个方向发展;root相反,如果您使用登录名,您最终会在互联网上冲浪,从root帐户中执行 IRC(以及可能同时执行的所有其他操作),从而不必要地将系统暴露在威胁之下。

更新:对于您的编译器示例,我将按照以下方式进行:

  1. 您的普通用户身份通过 SSH 登录节点,并从另一个运行图形 X11 显示的 Ubuntu 或 GNU/Linux 节点登录。确保通过 SSH 启用 X11 转发:

    ssh -X myuser@remotemachine.example.org
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在 shell/SSH 提示符下,发出命令:

    sudo /path/to/the/compiler/install/program
    
    Run Code Online (Sandbox Code Playgroud)

    这将以root特权运行编译器安装程序,并访问(通过 SSH 转发)您面前的图形显示。


Jor*_*tro 9

在 Ubuntu 中使用 sudo 背后的原因可以在这里找到。如果您需要一种快速的方法来“扎根”,我会使用sudo -ssudo -i

  • 澄清一下,我相信 sudo -s 以用户身份创建根会话,而 sudo -i 以根用户身份创建根会话。区分差异的简单方法是发出命令,然后执行“echo $HOME”以查看正在使用的环境。或者“cd ~”然后“pwd”也可以。 (9认同)

Mar*_*ppi 6

除了使用 root 的大量警告外,您还可以通过登录并从终端执行以下操作启用 root 登录:

sudo passwd
Run Code Online (Sandbox Code Playgroud)

这将首先提示您输入密码,然后会要求您更改 UNIX 密码。您输入的密码将用于该root帐户。

Ubuntu的维基有根和sudo的Ubuntu的内深处一个伟大的文章-警告和陷阱。


Eli*_*gan 5

这里有两个问题。一是,为什么在 Ubuntu 中默认禁用 root 登录?这里的几个帖子已经解决了这个问题。

第二个问题是,为什么图形 root 登录特别被贬低?

非图形 root 登录的所有缺点也适用于图形 root 登录。但是,当您以图形方式登录时,与以非图形方式登录时相比,您运行的程序要多得多,操作方式也更为复杂。整个图形用户界面和有效使用 GUI 所需的所有图形程序都将以 root 身份运行。它们中的任何一个中的微小安全漏洞都会使某人能够完全控制您的系统。

在 Ubuntu 中根本不建议以 root 身份登录,但安全社区没有达成共识,认为这普遍是一种不好的做法。然而,图形 root 登录只是一种不好的做法,几乎所有操作系统都已逐步淘汰它们或强烈建议不要使用它们。

在较小程度上,在图形登录中拥有非 root 用户(尤其是能够以 root 身份使用 sudo 或 PolicyKit 执行操作的用户)存在风险。但是,与图形环境中的所有内容实际上必须以具有无限功能的 root 身份运行时相比,它们受到的控制要强得多。尽管如此,对于安全至关重要的情况,通常建议完全取消图形界面,这就是为什么 Ubuntu Server 默认不附带 GUI 并正式建议不要安装 GUI(尽管支持这样做) .

在 Windows 世界中,您现在可以通过基本上消除图形用户界面的方式安装 Windows Server (从技术上讲,保留了一些元素,但它非常精简,您无法运行任意图形程序)。这是基于同样的推理。

即使您决定启用 root 登录,也请不要以图形方式以 root 身份登录。启用 root 登录可能会使您面临更高的安全风险;以 root 身份运行整个图形环境会使您面临更高的风险。

此外,除了设计为以 root 身份运行 gksu/gksudo/kdesudo 的图形管理工具之外,大多数图形程序不打算以 root 身份运行。因为它们没有在这种模式下进行广泛的测试,所以它们可能会失败或表现不正常(这会特别糟糕,因为它们以 root 身份运行)。

最后,即使是一些图形管理工具,例如users-admin,如果以 root 身份运行也会失败,因为它们希望由普通用户运行并使用 PolicyKit 以 root 身份执行操作(实际上从未以 root 身份运行)。


Cas*_*ler 1

因为root用户和Administrator(在Windows中)对于计算机来说就相当于上帝。该用户可以调整任何内容,从文件权限到甚至擦除整个文件系统。对于普通家庭用户来说,以管理员身份运行(使用该名称或首次启动时设置的其他名称)是很常见的。因为以该用户身份执行的任何程序都是系统范围的,所以它变得危险。

缺乏对管理权限的控制会导致病毒/恶意软件甚至自毁性问题。正因为如此,包括 Ubuntu 在内的许多发行版通过额外的步骤限制了向高功率的过渡(这是一个有点认知的步骤,有助于坚持“我在这里所做的任何更改都是范围更宏大的更改”)。