我觉得这是一个愚蠢的问题,但这是我一直想知道的。
我有一个 VPS,这是我的第一个大型 linux 项目。我是唯一可以访问它的人。我的问题是,仅以 root 身份登录而不是创建帐户并授予他们 sudo 访问权限有什么问题?如果 sudoer 可以做所有 root 可以做的事情,那有什么区别呢?如果黑客可以破解我的标准非 root 帐户的密码,那么他也可以执行 sudo 命令,那么黑客破解我的 root 帐户或多或少有什么关系呢?
我觉得这是一个愚蠢的问题,但这是我一直想知道的。
我有一个 VPS,这是我的第一个大型 linux 项目。我是唯一可以访问它的人。我的问题是,仅以 root 身份登录而不是创建帐户并授予他们 sudo 访问权限有什么问题?如果 sudoer 可以做所有 root 可以做的事情,那有什么区别呢?如果黑客可以破解我的标准非 root 帐户的密码,那么他也可以执行 sudo 命令,那么黑客破解我的 root 帐户或多或少有什么关系呢?
如果您以 root 身份登录,您可以轻松擦除目录或做一些事后回想起来对系统来说真的很愚蠢的事情,而作为用户,您通常必须在您的工作中投入一些额外的心理周期'在做危险的事情之前打字。
此外,您以 root 权限运行的任何程序,这意味着如果某人或某物让您运行/编译/浏览一个危险的网站并想要破坏您的系统,例如木马或其他恶意软件,它可以完全访问您的系统,并且可以做它想做的事,包括访问低于 1024 的 TCP 端口(例如,它可以在你不知情的情况下将你的系统变成一个 remailer)。
基本上,您是在自找麻烦,因为您自己可能会阻止登录。我认识很多人,他们最终很高兴他们在粗心的时刻拥有了安全网。
编辑:还有一个问题是 root 是最知名的,因此是脚本和黑客的一个简单目标。禁用帐户并强制用户使用 sudo 的系统意味着任何从 ssh 破解 root 的尝试或对该帐户的本地漏洞利用都是在碰壁。他们必须猜测/破解密码和用户名。它在某种程度上是通过默默无闻的安全性,但很难说它不会阻止大多数脚本小子攻击。
如果您不允许白痴以 root 身份登录到您的服务器,那么您自己不要总是以 root 身份运行。除非你能直言不讳地说你从来都不是白痴。不完全是?你确定?:)
好处:减少你同时成为根和白痴的可能性。
主要原因是错误。如果您始终是 root,那么简单的拼写错误可能真的会搞砸系统。如果您仅以 root 身份登录或使用 sudo 执行需要它的操作,则可以将犯下危险错误的风险降至最低。
当您是 root 时,您会变得懒惰,因为您始终可以访问所有内容,所以您不在乎什么时候是 777 或 644 或其他什么。因此,如果您确实让其他人进入您的系统,而您不想访问所有内容,那么让其他人安全使用机器突然变得非常困难。
不以 root 身份登录背后有一些关键原则:1) 登录时永远不会通过网络发送 root 密码 2) 如果多个用户以同一个帐户(root 或其他)登录,则无法判断谁做了某事。3)不小心做了一些“愚蠢”的事情
它更多地是为了保护自己,以便您有第二次机会查看您尝试运行的更高权限的命令,类似于 Windows 中的 UAC。
rm -rf /
以 root 身份登录时很容易意外地执行类似操作 。此外,您具有可追溯性。在您是唯一(理论上)发出命令的人的情况下,这不是一个大问题,但记录和追溯个人的能力是许多分析形式的关键组成部分。
区别主要
在于:你不能偶然做坏事。
该“邪恶”代码无法接管系统。
注意:恶意代码并不一定意味着任何人都已经可以访问系统。
您应该始终使用具有最低权限级别的帐户。一直以 root 身份运行会助长不良习惯和懒惰,当您与多个用户一起工作或将某些内容暴露给公共/半公共网络时,这会使生活变得不愉快。
还要记住,密码破解只是一种妥协方案——也不是最常见的方案。您更有可能成为浏览器漏洞或系统上运行的某些守护程序中的漏洞的受害者。
想想你不假思索地使用的代码。例如,Adobe Flash 的 Linux 端口,这是一堆热气腾腾的便便,直到最近才变得可用。您认为该代码有多安全?您希望它能够完全控制您的系统吗?
它可以防止SSH暴力攻击。每个 unix 都有一个“root”帐户。但是,从外部不清楚您的“sudo”用户名是什么。因此,如果有人想尝试强行进入,他们知道有一个 root 帐户并且可能会尝试它。但是,如果您使用 sudo,他们不知道从哪里开始。
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html