我觉得这是一个愚蠢的问题,但这是我一段时间以来一直想知道的事情。
我有一个VPS,这是我的第一个大型Linux项目。我是唯一可以访问它的人。我的问题是,仅以root身份登录而不是创建帐户并为他们提供sudo访问权限有什么问题?如果sudoer可以做root可以做的所有事情,那有什么区别?如果黑客可以将我的密码破解到我的标准非root帐户,那么他也可以执行sudo命令,那么黑客破解我的root帐户又有多大作用呢?
我觉得这是一个愚蠢的问题,但这是我一段时间以来一直想知道的事情。
我有一个VPS,这是我的第一个大型Linux项目。我是唯一可以访问它的人。我的问题是,仅以root身份登录而不是创建帐户并为他们提供sudo访问权限有什么问题?如果sudoer可以做root可以做的所有事情,那有什么区别?如果黑客可以将我的密码破解到我的标准非root帐户,那么他也可以执行sudo命令,那么黑客破解我的root帐户又有多大作用呢?
Answers:
如果您以root用户身份登录,则可以轻松地擦除目录或做一些事后回想起来的事情,而这些事情在您的指尖转动时对系统确实是愚蠢的,而作为用户,您通常必须在您的工作中增加一些精神上的循环在做危险的事情之前先打字。
同样,您以root用户特权作为root用户特权运行的任何程序,这意味着如果某人或某物使您运行/编译/浏览危险网站并想要破坏您的系统(例如特洛伊木马或其他恶意软件),则它可以完全访问您的系统,并可以执行所需的操作,包括访问1024以下的TCP端口(例如,它可能使您的系统在您不知情的情况下变成转发器)。
基本上,您是在问一些自己无法登录的问题。我知道许多人最终很高兴他们在粗心的时刻有了安全网。
编辑:还有一个问题是root是脚本和黑客最知名的,因此很容易成为目标。禁用该帐户并强迫用户使用sudo的系统意味着,任何尝试从ssh破解根或对该帐户进行本地攻击的尝试都将他们的头撞在墙上。他们将不得不猜测/破解密码和用户名。通过某种程度的模糊性来保证安全,但是很难说它不能阻止大多数脚本小子攻击。
如果您不允许白痴以root用户身份登录到服务器,那么不要总是以root用户身份运行。除非你能忍心说你从来没有做过白痴。不完全是?你确定?:)
好处:减少同时成为root 和白痴的可能性。
主要原因是错误。如果您始终是root用户,那么简单的错字可能确实会使系统搞砸了。如果您仅以root用户身份登录或使用sudo进行需要的操作,则可以最大程度地减少犯错误错误的风险。
当您是root用户时,您会懒于权限,因为您一直可以访问所有内容,因此您不在乎什么是777或644或其他任何东西。因此,如果您确实让其他人进入您的系统,而又不想访问所有内容,那么突然之间,要使机器安全地供他人使用就变得非常困难。
区别主要
在于:
您不能无意间做任何坏事。
那个“邪恶的”代码不能接管系统。
注意:邪恶的代码不一定意味着任何人都已经可以访问系统。
您应该始终使用具有最低权限的帐户。始终以root身份运行会导致不良习惯和懒惰,当您与多个用户一起工作或将某些内容暴露于公共/半公共网络时,这会使生活变得不愉快。
还请记住,密码破解只是一种折衷方案-也不是最常见的方案。您更有可能成为浏览器漏洞或系统上运行的某些守护程序中的漏洞的受害者。
考虑一下您使用的代码而无需考虑。例如,Adobe Flash的Linux端口,这是一大堆便便,直到最近才可用。您认为该代码的安全性如何?您是否希望能够完全控制您的系统?
即使我不信任“默默无闻的安全性”,使用自定义登录名代替已有的root登录名也肯定有优势。因此,您还可以配置SSH以阻止root登录。
正如其他人所说,root用户可以做任何事情而无需任何确认。因此,使用无特权的用户可以防止出现愚蠢的错误和错别字。
支持多个用户帐户的另一个论点是在不同的用户下运行不同的软件。这样做,如果在一个应用程序中利用了安全漏洞,则利用者只能访问其运行用户可以访问的文件和资源。
不使用root的最后一点是:资源消耗。Root对可以使用的内存,处理时间,文件处理程序或磁盘空间没有限制。在许多文件系统上,有仅保留给root用户的数据块。因此,普通用户永远无法使用它们来填充磁盘。ulimit命令还可以用于限制用户可以使用的内存和文件处理程序编号。但是,如果您是root用户(或以root用户身份运行的应用程序),则没有任何东西可以阻止您更改此限制。
是的,我同意你的看法,我认为这是防止人为错误,有时甚至防止恶意程序的问题。我从未见过的坏事是使用root作为默认的gnome帐户。
我认为大多数这样做的用户是最近迁移到Linux或Unix的Windows用户。尝试将管理员特权的使用复制到root。