为什么以root身份运行很糟糕?


9

我经常在论坛或其他网站上看到过很多帖子,您在这里看到人们在开玩笑以root身份运行/登录,好像这很糟糕,每个人都应该知道。但是,有关此事的搜索没有太多发现。这也许是Linux专家广为人知的,但我真的不知道为什么。我记得几年前第一次尝试Linux(Redhat和Mandrake)时始终以root用户身份运行,因此不记得遇到任何问题。实际上,有些发行版的背景为鲜红色,并带有警告标志,作为root用户的墙纸(Suse?)。我仍然在Windows安装中经常使用“管理员”帐户,也从未遇到任何问题。

Answers:


9

这些用户具有对系统的管理访问权限,允许他们及其运行的应用程序的权限级别,以规避保护机制(例如文件系统权限),从而允许他们在系统上执行所有操作。恶意软件喜欢不受限制的访问。

举一个简单的例子

sudo rm -rf *

如果您位于根目录中,它将删除Linux系统上的几乎所有内容。它不需要那么明显,甚至不需要恶意。需要root特权的脚本中意外未定义的变量之类的东西可能会导致严重的问题:

rm -rf $destinationDir/*

# if the variable is undefined and the shell doesn't care, the result is:
rm -rf /*

有时,这是脚本中的简单错字,会删除系统的一半。

因此,一般建议仅在确实必要时才使用具有提升权限的执行程序。


3
简而言之:它冒着危险。
digitxp 2010年

只看那条命令,我的胃就会流血。
Paul Lammertsma 2010年

4

linux上的root甚至比Windows上的Administrator帐户更强大。它与Windows上的SYSTEM帐户相当,通常无法访问。


0

这等同于完全禁用UAC并以admin身份在Windows框中为所有用户运行。恶意软件可以更轻松地安装,通过下载进行驱动会更有效,如果现在它们已经渗透到您的计算机中,它们就会成为上帝。您只是有效地删除了用户权限(通常是不正确的做法)。恕我直言,如果您没有遇到任何问题,那么您要么很幸运,要么拥有非常安全的浏览习惯,要么最有可能....遇到问题并且不知道。


我可能遇到过(现在已经在Windows上)不知道的什么样的问题?
Mussnoon 2010年

您可能不会检测到某些类型的Rootkit,这些Rootkit不会对处理器或磁盘产生任何影响(例如,每隔2分钟轮询一次具有一次get / post的网站以成为DDoS的一部分)。其他可能性包括在磁盘上缓慢搜索PCI相关数据(信用卡号)
RobotHumans 2010年

0

我(至少两次)编写了脚本,这些脚本应该以特定的方式浏览目录结构并rm -rf *在某个目录中执行 。有一个错误,脚本最终进入"/"(root)目录并执行rm -rf *。当然,这是最糟糕的例子,但如果以root用户身份运行,甚至更少的恶意脚本或命令也可能对系统造成严重损害。


对于脚本(尤其是必须以root特权运行的脚本),您应使用安全网,例如“ rm -rf / full / path / to / target / dir / *”或“ cd / some /不存在/ directoy / | exit 1” 。

0

除了附带的权力以及错误的后果外,它也没有任何警告。正是这些警告使您警惕意料之外的事情。

就像以root用户身份运行GUI一样:您如何知道某些恶意软件试图自行安装?


0

您对Microsoft和处理此问题的杀毒软件感到不幸。管理员帐户(root)具有不受限制的访问权限(如每个人所述)。它不仅可以修改导致系统无法启动的计算机的系统文件,还可以访问其他用户数据(在对计算机进行物理访问时,用户权限不足以保护数据访问和修改)。现在转到您不“看到”的内容。

始终以管理员身份运行Windows计算机是一种不幸的做法。这样做有充分的理由,例如能够在一个会话中成为另一个用户(程序安装将需要注销并以admin身份登录并安装该应用程序,甚至可能需要由admin才能运行)。结果是,即使您没有安装该应用程序,您的计算机也会被用于您意想不到的事情。

结果不是人们不再以Admin身份运行,而是Microsoft将权限控制引入到OS UAC的下划线结构中。这意味着无论您是谁,都要求您授予应用程序运行权限。Vista真的很糟糕,因为它对管理员用户有两层,“您要运行此程序吗?”,“好,既然您正在运行此程序,您想让它运行吗?”

在Linux中,您会看到非常不同的理念。首先,操作系统会按照您所说的进行操作,而无需再次检查您确实打算运行应用程序。其次,用户不会对系统执行任何操作。这意味着该系统可以防止用户错误,但是用户可以根据需要随时将其权限升级到适当的级别。微软基本上已经建立了一个与用户层分离的权限升级层,Linux / Unix一直都有一种设计来升级与用户一起使用的权限。


0

在linux中,它主要只是防止您(或代表您运行的应用程序)意外地做一些愚蠢的事情。

在Windows中,如果没有以管理员身份运行的帐户,就无法安装多种软件,因为您没有对程序文件或Windows文件夹的写权限。最糟糕的恶意软件需要能够写入这些区域,才能将其蠕虫病毒侵入您的系统。

如果您不是以管理员身份运行,并且访问了一个受感染的站点,该站点试图安装类似隐藏的键盘记录程序之类的东西来窃取密码,银行信息或信用卡号,则该安装可能会失败。如果您以管理员身份运行,则该安装成功的可能性更大。相同的原则适用于linux系统。

他们的关键是杀毒软件甚至没有进入。如今,防病毒软件是您的最后一道防线,而不是您的第一道防线。我用来评估安全性措施的重要性顺序如下:

  1. 保持系统(包括应用程序软件)修补
  2. 不要以管理员身份运行
  3. 使用其他安全的互联网习惯
  4. 运行防火墙
  5. 拥有良好的脱机备份(在这种情况下,脱机意味着“普通文件系统无法访问”,这实际上可能意味着使用在线服务)
  6. 运行防病毒软件

实际上,如果您正确执行了其他所有操作,则根本不需要杀毒软件。但是这里重要的是,以管理员身份运行是不行的。

值得庆幸的是,这是Windows 7中的默认状态。即使您的帐户具有管理员权限,它仍然可以“沙盒”运行,并且仅授予您按需提升特定应用程序的权利。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.