我有多个用户通过 FTP 访问我的 ubuntu 服务器,每个用户都运行着自己的网站。
通过 apt-get 安装后,Apache 默认运行。我相信 www-data 是 apache 用户。如果用户拥有他们的文件,apache 就无法修改它们(即:wordpress)。如果 apache 拥有这些文件,则用户无法通过 FTP 访问并修改它们。
解决这个问题的最佳做法是什么?
答案1
正确答案是:视情况而定。如果您想要托管多个网站,我强烈建议您也按用户 ID 来区分网站,例如,为每个网站运行一个单独的 PHP-FPM 池。要了解如何使用 FastCGI 设置 Apache,请参阅我关于此的博客文章。
现在,如果您已经完成此操作,则有两种方法可供选择。第一种方法是使用您上传文件的同一用户运行 PHP。这将导致您永远不会遇到文件权限问题的设置,但您需要牺牲一些安全性,因为 PHP 代码可以覆盖自身。
第二种解决方案是创建一个额外的“部署”用户,用于上传代码,以及一个用于代码和执行上下文的公共组。然后,需要可写的目录将获得该组的 X 权限。
最后,我真的建议不要使用 FTP 部署任何服务器,因为它在多个层面上存在设计缺陷. 相反,安装一个 SFTP 服务器(例如带有 mod_sftp 的 ProFTPd)。
- 注意:链接的博客文章是我写的。