为什么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中,不允许使用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转发)您面前的图形显示。
在Ubuntu中使用Sudo背后的原因可以是 在这里找到 。如果您需要快速“扎根”,我使用Sudo -s
或Sudo -i
。
除了使用root的大量警告之外,您可以通过登录并从终端执行以下操作来启用root登录:
Sudo passwd
这将首先提示您输入密码然后会要求您更改UNIX密码。您输入的密码将用于root
帐户。
buntu Wiki 在Ubuntu中有一篇关于root和Sudo深度的文章 - 警告和陷阱。
这里有两个问题。一个是,为什么在Ubuntu中默认禁用root登录?这里的一些帖子已经解决了这个问题。
第二个问题是,为什么图形根登录特别贬低?
非图形根登录的所有缺点也适用于图形根登录。但是,当您以图形方式登录时,运行的程序远远多于以非法登录方式运行的程序。整个图形用户界面和有效使用GUI所需的所有图形程序将以root身份运行。其中任何一个中的微小安全漏洞都会使某人完全控制您的系统。
在Ubuntu中不推荐以root身份登录,但是在安全社区中没有达成共识,认为这通常是一种不好的做法。然而,图形根登录只是一种不好的做法,几乎所有操作系统都将它们逐步淘汰或强烈推荐它们。
在较小程度上,在图形登录中拥有非root用户(特别是能够以root用户身份执行Sudo或PolicyKit操作的用户)会带来风险。但是,与图形环境中的所有内容必须实际以root身份运行且具有无限功能时相比,它们受到的控制要远得多尽管如此,对于安全性至关重要的情况,通常建议完全取消图形界面,这就是为什么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 @”术语提示
您应该始终以自己身份登录,然后以Sudo身份登录以root身份执行操作。 Ubuntu设置为允许您默认所需的大多数访问。较小的更改将处理其余的事情(例如将您的习惯添加到其他组)。以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的选项。