LAMP 服务器的 Linux 用户和组

Posted

技术标签:

【中文标题】LAMP 服务器的 Linux 用户和组【英文标题】:Linux users and groups for a LAMP server 【发布时间】:2010-09-15 12:57:34 【问题描述】:

就 linux 用户和组而言,设置 LAMP 服务器的最佳做法是什么?如果在同一服务器上托管多个站点,最好让一个用户拥有与 apache 位于同一组中的所有站点源文件(和上传) - 还是每个站点都有不同的用户(这样每个站点都有自己的 crontab)?还是完全不同的东西?

由于某种原因,我遇到的 php/mysql/Linux 书籍似乎从未解决过这个问题。

【问题讨论】:

【参考方案1】:

在我们的平台上,每个网站的 htdocs 等都有自己的用户。这意味着,如果一个站点被入侵,其他站点应该没问题。

【讨论】:

【参考方案2】:

如果这是少数大型站点,您可能会发现使用 Xen 之类的工具将服务器拆分为多个 VM 比简单地按用户隔离更好。这将改善您站点的隔离性,并且如果将来某个站点的资源使用量开始比其他站点大得多,则可以更轻松地将站点迁移到自己的硬件上。

【讨论】:

【参考方案3】:

我假设您不想发疯并为 cPanel 获取 WHM,并且可能希望以低廉的价格执行此操作。

我认为让每个用户从他们自己的用户名和组访问他们的空间是一个最佳实践 - 特别是如果不相关的用户可能正在使用网络服务器。

如果您有超过 10 个域和用户,并且希望将帐户隔离到自己的空间,我会考虑使用 Webmin 并在服务器上安装 VirtualMin。这很容易在一个不错的免费安装中处理这些类型的问题。否则,您将不得不购买商业产品或手动处理所有事情 - 真的很痛苦,但可以做到(不推荐用于商业冒险)。

此外,Xen 和 VMS 可能有点矫枉过正,但也不像 Webmin/VirtualMin 那样易于管理 10-100 多个帐户。

【讨论】:

【参考方案4】:

最好的选择是使用带有 suPHP 模块的 Apache 为每个域创建 VirtualHost。通过这种方式,每个站点将归一个用户所有,并在该用户的许可下运行。每个站点的 webroot 都应该放在用户的 homedir 下,以防止本地攻击。

如果您为每个网站使用相同的用户,这意味着来自网站A的用户可以读取/写入网站B的文件。

【讨论】:

【参考方案5】:

多年来,我进行了某种小型托管,我的回答是“视情况而定”。

首先Apache Module(mod_php)是有区别的。 CGI 和 FastCGI。 可以在此处找到包含所有优点和缺点的好列表: Apache php modes

在安全性方面,所有模式都有利有弊。

由于我们只托管了相对少量的流量适中的域,我决定继续使用 mod_php 并使用 vhost 配置。

我还为每个 vhost 根目录使用了不同的 FTP 用户(当然)。

配置虚拟主机(每个客户一个)允许您以简单的方式关闭域,而无需通过一个大得离谱的 httpd.conf 并在途中产生错误。

【讨论】:

以上是关于LAMP 服务器的 Linux 用户和组的主要内容,如果未能解决你的问题,请参考以下文章

用户和组权限管理笔记

Linux的用户和组管理

Linux用户和组管理未完成

Linux用户和组管理内容---学习笔记

LINUX中的用户和组

Linux用户和组管理