Renjith G Asked: 2010-10-13 20:24:14 +0800 CST2010-10-13 20:24:14 +0800 CST 2010-10-13 20:24:14 +0800 CST 为什么没有以root身份登录的选项? 772 为什么 Ubuntu 不允许 GUI 用户在系统启动时像 Windows 中的管理员一样以 root 身份登录? 为什么他们限制我们只能通过终端登录? security root 14 个回答 Voted evgeny 2010-10-13T20:36:50+08:002010-10-13T20:36:50+08:00 因为除非您确切知道自己在做什么,否则不建议这样做。Root 是超级用户,这意味着它可以做任何事情 - 它仅用于管理任务。日常任务可能会带来安全风险,如果每个人(或大部分用户)都使用 root,就会被利用。想想 Windows - 99% 的恶意软件和病毒问题来自使用管理员帐户执行日常任务的人。 让我们看一个例子: 如果有人闯入您的系统并告诉它擦除您的磁盘怎么办?如果您以普通用户身份运行,那么您将(应该)能够删除的唯一文件是属于您的文件,而不是其他任何人。例如,如果您让其他人使用计算机,那么无论您多么努力,他们的文件都不会被触及。这意味着您将无法更改任何系统文件,因此您的系统将保持坚如磐石且不受影响/未感染。 但是,如果您以 root 身份运行,则可以完全擦除硬盘驱动器,可能会对硬件本身造成一些损坏,并且通常会使系统无法使用。更正:任何可以在您的计算机(一些恶意网站或电子邮件附件)上以 root身份运行单个命令的人都可以这样做。 看看这篇不错的文章,它可能比我解释得更好。 这是另一个。 您始终可以使用sudo command或gksu command以超级用户身份运行command,这两者都可以与图形和命令行实用程序一起使用。sudo但是,通常用于 CLI,并且gksu是执行相同操作的图形密码提示。 在某种程度上,它们让你root暂时变得——比不断地以 root 身份运行并冒着不稳定的风险要好得多。 Riccardo Murri 2010-10-14T00:03:42+08:002010-10-14T00:03:42+08:00 在标准的 Ubuntu 中,root不允许从 GDM(图形)登录管理器或文本控制台(即,如果按Ctrl+ Alt+获得的控制台)登录F1。 为了执行root(即管理员)操作,您必须sudo在终端中使用该命令,或任何与其等效的 GUI:它们会询问您的密码,然后执行请求的特权操作(并且仅执行该操作)。 正如其他人指出的那样,这种行为的原因是,执行root操作本质上是有风险的,并且真正需要root特权的操作数量相对较少:通过使用这种sudo方法,您大部分时间都在使用非特权帐户运行(即,无害给系统和其他用户),并在root真正需要的时候获得权力。 一个例子可能有助于澄清。假设你想在你的机器上安装一个新的服务(守护进程);这是相对较新的,您需要阅读它以及如何根据您的需要对其进行配置。你最终会大量浏览网页以查找信息、示例配置等,也许有一些 IRC 聊天来询问更多信息——这些都不需要root权力!最后,您只需要两个操作的特权访问: 安装新程序(即,sudo apt-get install ...),和 编辑默认配置 计算机安全中普遍接受的原则是始终使用尽可能低的特权级别来执行操作。- 这降低了由于软件错误或操作员错误而发生不良事件的风险。 Ubuntu 默认设置是朝着这个方向发展的;相反,如果您使用的是root登录名,您最终会上网,从该root帐户执行 IRC(以及可能同时执行的所有其他操作),从而不必要地将系统暴露在威胁之下。 更新:对于您的编译器示例,我会这样做: 以您的普通用户身份通过 SSH 登录节点,并从另一个运行图形 X11 显示的 Ubuntu 或 GNU/Linux 节点登录。确保通过 SSH 启用 X11 转发: ssh -X [email protected] 在 shell/SSH 提示符下,发出命令: sudo /path/to/the/compiler/install/program 这将以root特权运行编译器安装程序,并访问(通过 SSH 转发)您面前的图形显示。 Jorge Castro 2010-10-14T05:22:13+08:002010-10-14T05:22:13+08:00 可以在这里找到在 Ubuntu 中使用 sudo 的原因。如果您需要一种快速“root”的方法,我使用sudo -sor sudo -i。 Marco Ceppi 2010-10-14T05:17:06+08:002010-10-14T05:17:06+08:00 除了使用 root 的大量警告之外,您可以通过登录并从终端执行以下操作来启用 root 登录: sudo passwd 这将首先提示您输入密码,然后要求您更改 UNIX 密码。您输入的密码将用于该root帐户。 Ubuntu Wiki有一篇很棒的文章,介绍了 Ubuntu 中 root 和 sudo 的深度——警告和陷阱。 Eliah Kagan 2012-05-09T21:03:19+08:002012-05-09T21:03:19+08:00 这里有两个问题。一是,为什么在 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 身份运行整个图形环境会使您面临极大的风险。 此外,除了设计为使用 gksu/gksudo/kdesudo 以 root 身份运行的图形管理工具外,大多数图形程序不打算以 root 身份运行。因为它们没有在这种模式下进行广泛的测试,所以它们可能会失败或行为不正常(这会特别糟糕,因为它们是以 root 身份运行的)。 最后,即使是一些图形管理工具,例如users-admin,如果以 root 身份运行,也会失败,因为它们希望由普通用户运行并使用 PolicyKit 以 root 身份执行操作(实际上从未以 root 身份运行)。 Pete 2012-05-03T14:53:07+08:002012-05-03T14:53:07+08:00 打开终端(Ctrl+ Alt+T或 Dash 主页 > 更多应用程序 > 已安装(展开)> 终端)。 激活根帐户 在终端类型或粘贴sudo passwd root。输入您的正常登录密码(如果被要求输入),然后您将被要求输入新root密码并确认。 添加允许您输入根目录及其密码的新登录提示 在终端类型或粘贴。gksudo gedit /etc/lightdm/lightdm.conf. 这将打开一个图形文本编辑器窗口,您可以在其中编辑登录屏幕的配置文件。 将该行添加greeter-show-manual-login=true到文件的底部。 该文件现在应如下所示: [SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true 保存lightdm.conf文件并退出 gedit。 重新启动 Ubuntu 12.04,您将看到一个新的“登录”窗口(取代之前的“其他”窗口),允许输入用户名和密码。输入root用户名,然后输入您分配给 root 帐户的密码。 我希望这可以帮助其他需要/想要root访问的人。 Allan Ruin 2012-05-06T21:31:27+08:002012-05-06T21:31:27+08:00 至于 ubuntu 12.04 LTS,您可以使用 root 权限执行此操作: echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf 然后你被要求输入用户名和密码以图形方式登录。我假设您已经为 root 设置了密码:) 我知道您不应该以 root 身份直接登录的原因有很多,但是,当您真正欣赏作为 root 的便利时,确实会退出一些罕见的情况(例如在 vmware 中运行的测试盒中)。 Casey Keller 2010-10-13T20:31:42+08:002010-10-13T20:31:42+08:00 因为 root 用户和管理员(在 Windows 中)相当于一台计算机的上帝。该用户可以调整从文件权限到甚至擦除整个文件系统的任何内容。普通家庭用户以管理员身份运行是很常见的(使用该名称或在首次启动时设置的另一个名称)。因为以该用户身份执行的任何程序都是系统范围的,所以它变得危险。 缺乏对管理权限的控制会导致病毒/恶意软件甚至自毁问题。正因为如此,包括 Ubuntu 在内的许多发行版都通过一个额外的步骤限制了向高性能的过渡(一个有点认知的步骤,有助于坚持“我在这里所做的任何更改都是范围更大的更改”)。 Andrea Corbellini 2010-10-14T07:41:04+08:002010-10-14T07:41:04+08:00 虽然您不能直接以 root 身份登录(因为其他人已经很好地解释了原因),但您可以以 root 身份运行 GUI 应用程序。例如,系统 → 管理 → Synaptic 包管理器是一个以 root 身份运行的图形应用程序。 要以 root 身份运行应用程序(文本应用程序或 GUI 应用程序),只需使用以下命令之一: sudo name-of-the-application gksu name-of-the-application 它们几乎完全相同。主要区别在于第一个在终端上询问您的密码,第二个使用图形对话窗口。 Barry K 2012-05-04T04:11:52+08:002012-05-04T04:11:52+08:00 通常不建议使用 Root,但有时您有一长串需要 root 权限的终端命令,并且以 root 身份登录更方便。我使用sudo xtermorgksu xterm来打开一个 root 终端
因为除非您确切知道自己在做什么,否则不建议这样做。Root 是超级用户,这意味着它可以做任何事情 - 它仅用于管理任务。日常任务可能会带来安全风险,如果每个人(或大部分用户)都使用 root,就会被利用。想想 Windows - 99% 的恶意软件和病毒问题来自使用管理员帐户执行日常任务的人。
让我们看一个例子:
如果有人闯入您的系统并告诉它擦除您的磁盘怎么办?如果您以普通用户身份运行,那么您将(应该)能够删除的唯一文件是属于您的文件,而不是其他任何人。例如,如果您让其他人使用计算机,那么无论您多么努力,他们的文件都不会被触及。这意味着您将无法更改任何系统文件,因此您的系统将保持坚如磐石且不受影响/未感染。
但是,如果您以 root 身份运行,则可以完全擦除硬盘驱动器,可能会对硬件本身造成一些损坏,并且通常会使系统无法使用。更正:任何可以在您的计算机(一些恶意网站或电子邮件附件)上以 root身份运行单个命令的人都可以这样做。
看看这篇不错的文章,它可能比我解释得更好。
这是另一个。
您始终可以使用
sudo command
或gksu command
以超级用户身份运行command
,这两者都可以与图形和命令行实用程序一起使用。sudo
但是,通常用于 CLI,并且gksu
是执行相同操作的图形密码提示。在某种程度上,它们让你
root
暂时变得——比不断地以 root 身份运行并冒着不稳定的风险要好得多。在标准的 Ubuntu 中,
root
不允许从 GDM(图形)登录管理器或文本控制台(即,如果按Ctrl+ Alt+获得的控制台)登录F1。为了执行
root
(即管理员)操作,您必须sudo
在终端中使用该命令,或任何与其等效的 GUI:它们会询问您的密码,然后执行请求的特权操作(并且仅执行该操作)。正如其他人指出的那样,这种行为的原因是,执行
root
操作本质上是有风险的,并且真正需要root
特权的操作数量相对较少:通过使用这种sudo
方法,您大部分时间都在使用非特权帐户运行(即,无害给系统和其他用户),并在root
真正需要的时候获得权力。一个例子可能有助于澄清。假设你想在你的机器上安装一个新的服务(守护进程);这是相对较新的,您需要阅读它以及如何根据您的需要对其进行配置。你最终会大量浏览网页以查找信息、示例配置等,也许有一些 IRC 聊天来询问更多信息——这些都不需要
root
权力!最后,您只需要两个操作的特权访问:sudo apt-get install ...
),和计算机安全中普遍接受的原则是始终使用尽可能低的特权级别来执行操作。- 这降低了由于软件错误或操作员错误而发生不良事件的风险。
Ubuntu 默认设置是朝着这个方向发展的;相反,如果您使用的是
root
登录名,您最终会上网,从该root
帐户执行 IRC(以及可能同时执行的所有其他操作),从而不必要地将系统暴露在威胁之下。更新:对于您的编译器示例,我会这样做:
以您的普通用户身份通过 SSH 登录节点,并从另一个运行图形 X11 显示的 Ubuntu 或 GNU/Linux 节点登录。确保通过 SSH 启用 X11 转发:
在 shell/SSH 提示符下,发出命令:
这将以
root
特权运行编译器安装程序,并访问(通过 SSH 转发)您面前的图形显示。可以在这里找到在 Ubuntu 中使用 sudo 的原因。如果您需要一种快速“root”的方法,我使用
sudo -s
orsudo -i
。除了使用 root 的大量警告之外,您可以通过登录并从终端执行以下操作来启用 root 登录:
这将首先提示您输入密码,然后要求您更改 UNIX 密码。您输入的密码将用于该
root
帐户。Ubuntu Wiki有一篇很棒的文章,介绍了 Ubuntu 中 root 和 sudo 的深度——警告和陷阱。
这里有两个问题。一是,为什么在 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 身份运行整个图形环境会使您面临极大的风险。
此外,除了设计为使用 gksu/gksudo/kdesudo 以 root 身份运行的图形管理工具外,大多数图形程序不打算以 root 身份运行。因为它们没有在这种模式下进行广泛的测试,所以它们可能会失败或行为不正常(这会特别糟糕,因为它们是以 root 身份运行的)。
最后,即使是一些图形管理工具,例如
users-admin
,如果以 root 身份运行,也会失败,因为它们希望由普通用户运行并使用 PolicyKit 以 root 身份执行操作(实际上从未以 root 身份运行)。打开终端(Ctrl+ Alt+T或 Dash 主页 > 更多应用程序 > 已安装(展开)> 终端)。
激活根帐户
在终端类型或粘贴
sudo passwd root
。输入您的正常登录密码(如果被要求输入),然后您将被要求输入新root
密码并确认。添加允许您输入根目录及其密码的新登录提示
在终端类型或粘贴。
gksudo gedit /etc/lightdm/lightdm.conf
. 这将打开一个图形文本编辑器窗口,您可以在其中编辑登录屏幕的配置文件。将该行添加
greeter-show-manual-login=true
到文件的底部。该文件现在应如下所示:
保存
lightdm.conf
文件并退出 gedit。重新启动 Ubuntu 12.04,您将看到一个新的“登录”窗口(取代之前的“其他”窗口),允许输入用户名和密码。输入
root
用户名,然后输入您分配给 root 帐户的密码。我希望这可以帮助其他需要/想要
root
访问的人。至于 ubuntu 12.04 LTS,您可以使用 root 权限执行此操作:
然后你被要求输入用户名和密码以图形方式登录。我假设您已经为 root 设置了密码:)
我知道您不应该以 root 身份直接登录的原因有很多,但是,当您真正欣赏作为 root 的便利时,确实会退出一些罕见的情况(例如在 vmware 中运行的测试盒中)。
因为 root 用户和管理员(在 Windows 中)相当于一台计算机的上帝。该用户可以调整从文件权限到甚至擦除整个文件系统的任何内容。普通家庭用户以管理员身份运行是很常见的(使用该名称或在首次启动时设置的另一个名称)。因为以该用户身份执行的任何程序都是系统范围的,所以它变得危险。
缺乏对管理权限的控制会导致病毒/恶意软件甚至自毁问题。正因为如此,包括 Ubuntu 在内的许多发行版都通过一个额外的步骤限制了向高性能的过渡(一个有点认知的步骤,有助于坚持“我在这里所做的任何更改都是范围更大的更改”)。
虽然您不能直接以 root 身份登录(因为其他人已经很好地解释了原因),但您可以以 root 身份运行 GUI 应用程序。例如,系统 → 管理 → Synaptic 包管理器是一个以 root 身份运行的图形应用程序。
要以 root 身份运行应用程序(文本应用程序或 GUI 应用程序),只需使用以下命令之一:
它们几乎完全相同。主要区别在于第一个在终端上询问您的密码,第二个使用图形对话窗口。
通常不建议使用 Root,但有时您有一长串需要 root 权限的终端命令,并且以 root 身份登录更方便。我使用
sudo xterm
orgksu xterm
来打开一个 root 终端