总是成为根源有什么问题?

我有一种感觉,这是一个愚蠢的问题,但这是我想了一会儿。

我有一个VPS,这是我的第一个大型Linux项目。 我是唯一有权访问的人。 我的问题是,以root身份login,而不是创build一个帐户,并给他们sudo访问权限是什么错误? 如果一个sudoer可以做任何事情,那么有什么不同呢? 如果一个黑客可以将我的密码破解到我的标准非root用户帐户,那么他也可以执行sudo命令,那么黑客如何破解我的根帐户或多或less?

    如果你是以root身份login的,你可以很容易的擦掉目录或者做一些事情,但是回想起来真的是愚蠢的,只要用手指轻轻一擦就可以了,而作为一个用户,你通常需要在你身上放置一些额外的心智周期在做一些危险的事情之前打字。

    此外,你以根用户权限运行的任何程序,这意味着如果有人或某事让你运行/编译/浏览危险的网站,并想损害你的系统,如木马或其他恶意软件,它可以完全访问您的系统,并可以做到自己想做的事情,包括访问1024以下的TCP端口(例如,可以在不知情的情况下将系统变成重新加载器)。

    基本上你有点麻烦,因为你可能会阻止login。 我知道很多人在一时粗心大意的时候感到高兴,他们有了这个安全网。

    编辑:还有根是最知名的,因此一个简单的目标,脚本和黑客的问题。 禁用帐户的系统,而是强制用户使用sudo,意味着任何试图从ssh破解root或者破解本地漏洞的任何企图,都会将他们的头撞到墙上。 他们必须猜测/破解密码用户名。 通过默默无闻的程度来看,这是安全的,但很难辩称,它不能阻止大多数的脚本小子攻击。

    如果你不允许一个白痴以root身份login到你的服务器,那么不要总是以root身份运行。 除非你能交上心,否则你从来都不是白痴。 不完全是? 你确定? 🙂

    好处:同时降低你成为根白痴的可能性。

    主要原因是错误。 如果你永远是根,简单的错字可能真的搞砸了系统。 如果您只以root用户身份login或使用sudo执行需要的操作,则可以最大限度地减less发生危险错误的风险。

    当你是root的时候,你会对权限感到懒惰,因为你可以随时访问所有的东西,所以你不在乎什么时候是777或者644或者什么的。 因此,如果您曾经让任何其他人对您的系统感到不想访问所有内容,突然间变得非常困难,让机器可以安全地被其他人使用。

    有几个关键的原理不以root身份login:1)root密码永远不会在login时通过networking发送2)如果多个用户login为同一个帐户(root或者其他),没有办法告诉谁做了什么。 3)偶然做一些“愚蠢的事情”

    更多的是保护自己,这样你就有第二次机会来检查你要运行的更高特权命令,类似于Windows中的UAC。 以root身份login时,意外地执行诸如rm -rf /类的操作非常容易。

    另外,你有可追溯性。 在你唯一(理论上)发布命令的情况下,这不是一个大问题,但是logging和追溯到个人的能力是多种分析forms的关键组成部分。

    区别主要在于:
    你不能做任何不好的事情。
    那“邪恶”的代码不能接pipe这个系统。
    注意:恶意代码并不意味着任何人已经可以访问系统。

    您应该始终使用具有最低特权级别的帐户。 一直以root身份运行会鼓励坏习惯和懒惰,当你与多个用户一起工作或暴露于公共/半公共networking时,会使生活变得不愉快。

    另外请记住,密码破解只是一个妥协scheme – 也不是最常见的情况。 您更可能成为浏览器漏洞的受害者,或者系统上运行的某些守护进程中的漏洞。

    想想你使用的代码,而不用考虑。 例如,Adobe Flash的Linux端口,这是一堆便便,只是在最近才变得可用。 你认为这个代码有多安全? 你希望能够充分控制你的系统吗?

    我的build议是一直尝试使用root, 你会很快发现你为什么不应该:)

    它可以防止SSH蛮力攻击。 每个Unix有一个“根”帐户。 然而从外面来看,你的“sudo”用户名是什么都不清楚。 因此,如果有人想试图强行进入,他们知道有一个根帐户,可能会尝试。 但是,如果您使用sudo,他们不知道从哪里开始。

    即使我不信任“默默无闻的安全性”,使用自定义login而不是永远存在的根login当然也是有利的。 因此,您也可以configurationSSH以阻止根login。

    正如其他人所说,root可以做任何事情,没有任何确认。 所以使用非特权用户可以防止愚蠢的错误和拼写错误。

    另一个支持多用户帐户的理由是在不同的用户下运行不同的软件。 这样做,如果在一个应用程序中利用安全漏洞,攻击者只能访问正在运行的用户可访问的文件和资源。

    最后一点不使用root:资源消耗。 Root对于可以使用多less内存,处理时间,文件处理程序或磁盘空间没有限制。 在很多文件系统上,有一些数据块只保留在根目录下。 所以普通用户永远不能使用它们来填充磁盘。 ulimit命令也可以用来限制用户可以使用的内存和文件句柄号。 但是,如果您是root用户(或以root身份运行的应用程序),则不会阻止您更改此限制。

    是的,我同意你的看法,我认为这是防止人为错误,有时防范恶意程序的问题。 我从来没有见过的坏事是使用root作为默认的gnome帐户。
    我认为大多数用户是最近迁移到Linux或Unix的Windows用户。 尝试将pipe理员权限的用法复制到root用户。

    以root身份login没有任何问题。 它有助于发展肌肉记忆,只有input安全的命令,并促进思想的准确性,当执行具有重大后果的行动。 我强烈build议以root身份工作,以便更好地进行系统pipe理。

    你也可以做很酷的东西,比如ping -i 0.2 -c 1000 example.com