为什么没有以root身份登录的选项?
为什么Ubuntu不允许GUI用户在系统启动时以root用户身份登录,如Windows中的管理员?
为什么他们限制我们只通过终端登录?
因为除非您确切知道自己在做什么,否则不建议这样做。 Root是超级用户,这意味着它可以执行任何操作 – 它仅用于管理任务。 如果每个人(或大部分用户)使用root,日常任务可能会带来安全风险。 想想Windows – 99%的恶意软件和病毒问题来自使用管理员帐户进行日常任务的人。
我们来看一个例子。
如果有人闯入您的系统并告诉它擦除您的磁盘怎么办? 如果您以普通用户身份运行,那么您应该(应该)删除的唯一文件是属于您的文件,而不是其他任何人。 比方说,如果你让其他人使用电脑,无论你怎么努力,都不会触及他们的文件。 这意味着您将无法更改任何系统文件,因此您的系统将保持坚如磐石且不受影响/未受感染。
但是,如果以root身份运行,则可以完全擦除硬盘驱动器,可能会对硬件本身造成一些损害,并且通常会导致系统无法使用。 更正:任何可以在您的计算机上以root身份运行单个命令的人(某些恶意网站或电子邮件附件)都可以执行此操作。
看看http://everyjoe.com/technology/explain-why-not-log-on-as-root/ ,这是一篇很好的文章,可能比我更好地解释它。
编辑:这是另一个http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html
EDIT2:您始终可以使用sudo command
或gksu command
以超级用户身份运行command
,这两者都可以使用图形和命令行实用程序。 sudo
通常用于CLI,而gksu
是图形密码promt,它做同样的事情。
在某种程度上,它们会让你暂时成为root
– 比不断运行并且冒着不稳定的风险要好得多。
在标准的Ubuntu中,不允许从GDM(图形)登录管理器或文本控制台(即按Ctrl + Alt + F1时获得的root
登录)进行root
登录。
为了执行root
(即管理员)操作,您必须在终端或其等效的GUI中使用sudo
命令:这些将询问您的密码,然后执行请求的特权操作(并且只执行该操作)。
正如其他人所指出的那样,这种行为的原因是执行root
操作具有内在的风险,而且真正需要root
权限的操作数量相对较少:通过使用这种sudo
方法,您大多数时间都使用非特权帐户(即,对系统和其他用户无害)并在真正需要时获得root
权。
一个例子可能有助于澄清。 假设您要在计算机上安装新服务(守护程序); 这是相对较新的,您需要阅读它以及如何根据您的需要进行配置。 您将最终浏览网页以查找信息,示例配置等,也许有一些IRC聊天要求更多信息 – 这些都不需要root
权限! 最后,您只需要两个操作的特权访问:
- 安装新程序(即
sudo apt-get install ...
),和 - 编辑默认配置
计算机安全中普遍接受的原则总是使用尽可能少的权限级别来执行操作。 – 这降低了由于软件中的错误或操作员的错误而导致不良事件发生的风险。
Ubuntu的默认设置就是这个方向; 如果您使用root
登录,相反,您最终会上网,从root
帐户执行IRC(以及可能同时执行的所有其他操作),从而不必要地将系统暴露给威胁。
更新:对于您的编译器示例,我将以这种方式继续:
-
以常规用户身份通过SSH登录节点,从另一个运行图形X11显示的Ubuntu或GNU / Linux节点登录节点。 确保通过SSH启用X11转发:
ssh -X myuser@remotemachine.example.org
-
在shell / SSH提示符下,发出命令:
sudo /path/to/the/compiler/install/program
这将以
root
权限运行编译器安装程序,并访问(通过SSH转发)您面前的图形显示。
在这里可以找到在Ubuntu中使用sudo的原因。 如果你需要一个快速的方法来“扎根”我使用sudo -s
或sudo -i
。
除了使用root的大量警告之外,您还可以通过登录并从终端执行以下操作来启用root登录:
sudo passwd
这将首先提示您输入密码,然后会要求您更改UNIX密码。 您输入的密码将用于root
帐户。
Ubuntu Wiki有一篇关于Ubuntu中root和sudo深度的文章 – 警告和陷阱。
这里有两个问题。 一个是,为什么在Ubuntu中默认禁用root登录? 这里有几个post已经解决了这个问题。
第二个问题是,为什么图形根登录特别贬低?
非图形根登录的所有缺点也适用于图形根登录。 但是当您以图形方式登录时,您运行的程序远远多于以非常方式登录时运行的程序。 整个图形用户界面和有效使用GUI所需的所有图形程序将以root身份运行。 其中任何一个中的微小安全漏洞都会使某人完全控制您的系统。
在Ubuntu中不推荐以root身份登录,但是在安全社区中没有达成共识,认为这通常是一种不好的做法。 然而,图形根登录只是一种不好的做法,几乎所有操作系统都将它们逐步淘汰或强烈推荐它们。
在较小程度上,在图形登录中拥有非root用户(特别是能够以root用sudo或PolicyKit执行操作的用户)会带来风险。 但是,与图形环境中的所有内容必须实际以root身份运行且具有无限function的情况相比,它们受到更多控制。 尽管如此,对于安全性至关重要的情况,通常建议完全取消图形界面,这就是为什么Ubuntu Server默认情况下不附带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
到文件的底部。
该文件现在应如下所示:
[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true
保存lightdm.conf
文件并退出gedit。
重新启动Ubuntu 12.04,您将看到一个新的“登录”窗口(替换之前的“其他”窗口),该窗口允许输入用户名和密码。 输入root
作为用户名,然后输入您分配给root帐户的密码。
我希望这可以帮助那些需要/想要root
访问权限的人。
对于ubuntu 12.04 LTS,您可以使用root权限执行此操作:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
然后,系统会要求您输入用户名和密码以便以图形方式登录。 我假设你已经为root设置了密码:)
我知道有无数的理由你不应该直接以root用户身份登录,但是,如果你真的很欣赏root的便利,那么确实会退出一些罕见的情况(例如在vmware中运行的测试盒中)。
因为root用户和Administrator(在Windows中)相当于神对计算机。 该用户可以调整任何内容,从文件权限到甚至删除整个文件系统。 普通家庭用户以管理员身份运行(在该名称下或首次启动时设置的其他名称)是很常见的。 因为作为该用户执行的任何程序都是系统范围的,所以它变得危险。
缺乏对管理权限的控制允许病毒/恶意软件甚至是自毁问题。 正因为如此,许多发行版,包括Ubuntu,通过一个额外的步骤限制了向高功率的过渡(一个有点认知的步骤,有助于坚持“我在这里所做的任何改变都是范围更大的变化”)。
虽然您无法以root用户身份直接登录(出于其他人已经解释过的原因),您可以以root用户身份运行GUI应用程序。 例如, 系统→管理→Synaptic包管理器是以root身份运行的图形应用程序。
要以root用户身份运行应用程序(文本应用程序或GUI应用程序),只需使用以下命令之一:
sudo name-of-the-application gksu name-of-the-application
它们几乎相同。 主要区别在于,第一个要求在终端上输入密码,第二个使用图形对话窗口。
Root通常不建议正常使用,但有时你需要一长串需要root权限的终端命令,以root身份登录会更方便。 我使用sudo xterm
或gksu xterm
打开根终端我觉得它更容易区分哪个术语窗口具有root权限,只要你有方便的“root @”术语提示
附加说明:Ubuntu不允许GUI用户以root身份登录,因为Ubuntu会阻止您使用GUI应用程序(如nautilus)意外删除或删除重要文件。
只有CLI用户界面,可以降低我们的错误风险。 但是以前我们甚至无法使用root用户登录,因为Ubuntu会为root创建一个随机密码。 根管理任务只能通过使用命令sudo或gksu的用户密码来完成。
它基于Debian规则。
鉴于没有充分的理由以root身份登录 ,我猜想RH(允许root登录)和ubuntu(使用sudo / gksu做所有事情)之间的区别是优先考虑的问题。
至于问题的其他部分,您应该能够以普通用户身份登录,按ALT-F2
并输入gksu
来运行图形安装。 在结果对话框中,输入启动安装程序的命令。
不建议将Root用于日常日常任务。 由于它提供了超级用户的优先权,因此可能会被误用。在登录时没有root选项。
您应该始终以自己身份登录,然后以sudo身份执行操作。 Ubuntu设置为允许您默认所需的大多数访问。 较小的更改将处理其余的事情(例如将您的习惯添加到其他组)。 以root身份登录被认为是不好的做法。 行业最佳实践是此处的默认设置。
从安全角度来看,能够以root身份登录的人可能是一件非常糟糕的事情。