题 永远是root的错误是什么?


我有一种感觉这是一个愚蠢的问题,但这是我想知道的一段时间。

我有一个VPS,这是我的第一个大型Linux冒险。我是唯一可以访问它的人。我的问题是,以root身份登录而不是创建帐户并给予sudo访问权限有什么问题?如果一个sudoer可以做根本可以做的一切,那有什么区别?如果黑客可以将我的密码破解为我的标准非root帐户,那么他也可以执行sudo命令,那么黑客如何解决我的root帐户问题呢?


81
2017-08-24 14:23




我还要评论说,如果你不熟悉“Unix方式”,这不是一个愚蠢的问题。你应该首先考虑将这个问题作为一个新的Linux管理员来获得奖励。 - Bart Silverstrim
我想对一些答案发表评论。特别是那些说“你可以把东西搞砸了”的人。我不认为这是重点...“rm -rf /”与“sudo rm -rf /”相同。关键在于像“sudo rm”之类的东西不起作用,但“sudo startMyApp on low port”可行。 - Zlatko
永远不会有什么问题? - ostendali


答案:


如果你以root用户身份登录,你可以轻松地擦除目录或做一些回想起来的东西,只需用手指轻轻敲打系统,而作为用户,你通常需要额外的一些心理周期。在做一些危险的事情之前先打字。

此外,您以root身份运行的任何程序都是root权限,这意味着如果有人或某些东西让您运行/编译/浏览一个危险并且想要破坏您的系统的网站,例如木马或其他恶意软件,它可以完全访问您的系统并且可以做它想要的,包括访问1024以下的TCP端口(例如,它可以在你不知情的情况下将你的系统变成一个再寄存器)。

基本上你有点惹麻烦,因为你自己可能会阻止登录。我认识很多人最后很高兴他们在一个粗心的时刻拥有了那个安全网。

编辑:还存在root是最知名的问题,因此对于脚本和黑客来说是一个简单的目标。禁用帐户并强制用户使用sudo的系统意味着任何试图破解ssh或本地漏洞攻击帐户的行为都会撞到墙上。他们必须猜测/破解密码  用户名。在某种程度上通过默默无闻是安全的,但很难说它不能阻止大多数脚本儿童攻击。


71
2017-08-24 14:30



+1 - 使用“sudo”使执行程序成为root的公开行为。这不是“阻止黑客”的问题,而是让你养成以非特权用户身份工作的习惯,并将root权限的调用作为预期的公开行为。 - Evan Anderson
我开始怀疑Evan是不是真的是人工智能。 - Bart Silverstrim
Sudo还增加了一条审计线索。以sudo身份运行时记录的是谁,什么以及何时记录。哪个日志文件可能因发行版而异,但RedHat发行版倾向于使用/ var / log / secure而Ubuntu使用/var/log/auth.log ...。我不确定这是否适用于所有基于Debian的发行版。 - 3dinfluence
+1 - 它不仅仅是关于创造东西或做东西的权利,它还涉及毁灭的权利。以root用户身份登录(或者在任何其他操作系统上的等效操作)就像带着安全关闭的枪走来走去。您可能永远不会故意触摸该触发器,但您是否相信自己都会这样做? - Maximus Minimus
mh:/我穿上他的牛仔帽,轻弹手枪上的安全装置,打开啤酒,低声抱怨三色紫罗兰,然后以root身份登录。 - Kyle Brandt♦


如果您不允许白痴以root身份登录到您的服务器,那么请不要总是以root身份运行。除非你能用心说出你的意思 决不 一直是个白痴。不完全是?你确定? :)

好处:减少你成为root的可能性  一个白痴同时。


29
2017-08-24 14:41



+1 - “好处:减少你同时成为根和白痴的可能性。”我非常喜欢这个。 - Evan Anderson
为斯科特亚当斯的哲学+1,每个人都是白痴。 :)是的,这意味着你和我。 - Ernie
绝对 - 这是我在求职面试中的一个关键问题 - 你什么时候搞砸了?每个人都有,你只需要阅读这里关于“最有趣的系统管理员fubar”或其他什么的线程。如果有人不承认在他们的生活中至少犯过一次真正的愚蠢错误,那么可能有一些原因你不想与他们合作。 - Tom Newton


主要原因是错误。如果你总是root,那么简单的错字可能真的搞砸了系统。如果您只以root身份登录或使用sudo来执行需要它的操作,那么您可以最大限度地降低犯下危险错误的风险。


9
2017-08-24 14:31





当你是root用户时,你会对权限感到懒惰,因为你可以随时访问所有内容,所以你不关心什么是777或644等等。因此,如果您曾经让任何其他人进入您的系统而您不想访问所有内容,那么突然变得非常困难,使其他人可以安全地使用该机器。


9
2017-08-24 14:38



这被称为“根腐病”。 - kmarsh
我喜欢这个术语,“根腐”。实际上,一直以root身份运行可以将* nix机器转变为怪异的Windows 95类机器,而不会出现多用户安全性。 (几年前我记得一台SCO机器,共享会计应用程序上的每个用户都以root用户身份运行,因为“它让权限问题消失了。”>叹息<) - Evan Anderson
我记得得到这样的解释 - 他们有一个以root身份运行的邮件列表工具以及sendmail。我的回答是“黑客的许可问题也随之消失了。” - duffbeer703


不以root身份登录后面有一些关键原则: 1)root密码永远不会在登录时通过网络发送 2)如果多个用户以同一帐户(root或其他)登录,则无法告诉谁做了什么。 3)不小心做了些什么'愚蠢'


7
2017-08-24 14:31





它更适合保护自己,以便您有第二次机会查看您尝试运行的更高权限命令,类似于Windows中的UAC。偶然做一些事情很容易 rm -rf / 以root身份登录。

此外,您还具有可追溯性。在您是唯一一个(理论上)发布命令的情况下,这不是一个大问题,但是记录和追溯到个人的能力是许多形式的分析的关键组成部分。


3
2017-08-24 14:30



在多个人作为系统管理员工作的系统中,可追溯性至关重要。监管制度规定这不仅是可取的。 - APC
我星期五这样做了。而不是删除“/ dump / folder /”我删除了文件夹/。一个发臭的反斜杠让我想起了为什么我们不以root身份登录。 - oneodd1


区别主要是:
你不能意外地做任何坏事。
“邪恶”代码无法接管系统。
注意:恶意代码并不一定意味着任何人都已经访问过该系统。


2
2017-08-24 14:30



我注意到,现在,恶意代码通常意味着垃圾邮件机器人,可以像任何用户一样运行。 - Ernie
如果您认为某种病毒(试图破坏某些东西)或rootkit,那么如果您不是root用户,那么恶意软件就会复杂得多。 - StampedeXV


您应始终使用具有最低权限级别的帐户。一直以root身份运行会鼓励不良习惯和懒惰,当您与多个用户合作或将某些内容暴露给公共/半公共网络时,这会使生活变得不愉快。

还要记住,密码破解只是一种折衷方案 - 并且也不是最常见的方案。您更有可能成为浏览器漏洞的受害者,或者是您系统上运行的某个守护程序中的漏洞。

想一想你不经思考就使用的代码。例如,Adobe Flash的Linux端口,这是一堆热闹的大便,只是在最近才开始使用。您认为该代码有多安全?您是否希望能够完全控制您的系统?


2
2017-08-24 14:37





我的建议是尝试使用root一段时间;你很快就会发现为什么你不应该:)


2
2017-08-24 15:36