扮演魔鬼的拥护者,
假设我从托管服务提供商处购买了一台 Linux 服务器。我得到了 root 用户的密码,并被告知我可以使用 SSH 登录。此服务器的唯一目的是托管一个或多个网站,可能会正确配置和启用 SSL。
我的初始登录将是安装(通过一个经过充分审查和广泛使用的包管理系统)和配置(通过在 中编辑文件/etc
)一个 Web 服务器、一个数据库、一些不能访问 Internet 的软件和一个 Web 应用程序服务器(PHP-FPM、Unicorn 之类的)。包管理足够智能,可以设置非特权用户来运行服务器,这是我维护的配置。接下来,我将一些网站文件(PHP、Ruby、Python 等)放入 中/var/www
,并且chown
所有这些文件都由作为 Web 服务器进程运行的同一非特权用户拥有(即。www-data
)。
以后只有我会登录,而且只会更新网站文件和执行一些只读操作,如查看日志。
在上面的场景中,是否有任何与安全相关的原因,为什么我应该创建一个非 root 用户帐户而不是 root 用户来使用?毕竟,sudo
如果我使用非 root 用户登录,几乎每个命令都会运行。
请注意:我了解使用非 root 用户有许多普遍令人信服的安全和非安全原因。我不是在询问非 root 用户帐户的必要性。我的问题仅限于我上面描述的有限设置。我认为这是相关的,因为即使我的例子有限,它也很常见。