我正在 VirtualBox 中设置一个 LAMP 服务器用于个人开发。这将是 Ubuntu Server 12.04 安装,我将为 Drupal、Yii 和其他小型 PHP 应用程序使用虚拟主机。理想情况下,我想避免创建新的虚拟主机/var/www
,而是选择public_html
在用户的文件夹下创建它们家目录。
创建另一个用户(非 root)将这些应用程序“托管”在其主目录中是否有任何好处,或者在设置过程中创建的 root 用户是否足够?我意识到我问这个问题有点迂腐,但它是基于我在另一个网站(不记得 URL)上看到的关于为个人开发设置 LAMP 服务器的建议。我想这仅在生产环境中才至关重要。我正在考虑权限、安全性等方面的问题。
编辑:为此使用 root 用户是否会遇到任何问题,或者创建新的非 root 用户会更安全吗?
编辑2:请不要对这篇文章投反对票!我真的很想澄清这一点,因为我仍在走 Linux 学习之路:)
答案1
如果可以通过网络访问,是的。为了让apache访问public_html,它需要对root的主目录进行某种程度的访问(如果他们以某种方式找到一种方法,通过软件漏洞或不安全的配置,向root的主目录添加某些内容,这可能是灾难性的.bash_profile
)。
在非 root 帐户下尽可能少地运行。在非 root 帐户下运行内容并不是“高安全性”预防措施,它是一种非常基本的预防措施,与不将所有密码设置为等于各自的用户名相同。即使在家庭系统上,您仍然会遇到攻击。我的个人公共网络服务器和 sshd 经常受到外部来源的攻击(我什至不必告诉任何人它的存在)。 IP 通常最终到达南美或中国。即使您位于 NAT 和防火墙后面,系统仍然可能成为攻击目标。
如果无法通过网络访问,那么这个问题在很大程度上没有意义,除了个人发展可能应该反映您将在某种生产场景中运行的限制。即使它永远不会成为“生产”,拥有安全防护装置仍然是件好事,这样您就不会意外地开发应用程序,从而需要不安全的配置才能正常运行。
编辑:
另一点:如果您要在 root 的主目录之外提供 VHost,则意味着您直接以 root 身份登录,这是另一个非常基本的安全要求。PermitRootLogin no
insshd_config
也应该是有效的配置,除非你有充分的理由不这样做。