我正在设置一个测试服务器,用作 Web 开发平台,我想尽可能地模仿典型的共享主机设置。也就是说,我希望我的服务器有多个用户 FTP 帐户,每个帐户都链接到包含站点 Web 根目录的目录,并且我希望 Apache 能够轻松查看和操作这些文件。
我承认:我对 Fedora 并不像我想的那样熟悉,我在家里的机器上运行 Ubuntu,SElinux 让我有些烦恼。我最初的计划是让每个用户通过 FTP 进入他们的主目录,并将 Web 目录也放在那里,但是当 apache 尝试访问其 Web 目录之外的任何内容时,SElinux 会发出嘶嘶声,所以这个计划行不通。
继续这条路线是否明智,也许将 Web 目录挂载到用户主文件夹中,以便仍然可以使用 FTP 访问它们,即使 apache 像预期的那样在 var/www 中看到它们?设置自定义 FTP 帐户并在服务器框中使用单个 FTP 用户是否更有意义?对于这样的事情,一般的做法是什么?我现在正在使用 vsftpd 来托管 Web 目录,这就是我喜欢主目录方法的原因(它简单且安全),但当然肯定有更好的方法来实现它。
谢谢。(其他事情,比如限制数据库访问等,我会留到另一篇文章中讨论。我现在感兴趣的只是让 FTP 和 apache 在多用户环境中顺利运行。)
PS:顺便说一下,我在执行所有这些操作时遇到的一个问题是,如果 Apache 不是以与 FTP 帐户保存时相同的用户身份运行,则 FTP 创建文件时会出现权限错误,需要远程用户对文件进行 chmod 才能修复它。一个合乎逻辑的修复方法是将 Apache 运行在一个特殊组中,将所有 Web 用户放入该组中,并让 FTP 访问默认为授予该组对所有内容的读/写访问权限,就像 Apache 所期望的那样,但我一直无法弄清楚如何做到这一点。如果您知道解决方案,则可以获得加分和蛋糕。
答案1
您可以安装以下之一那些
至于 ps,这是我的解决方案
1 - Web 根目录中的所有文件都归 apache 以 (例如 www) 身份运行的用户所有 2 - ftp 守护程序已设置 chroot 选项 (即,没有人可以离开其主目录) 以及用于创建文件的正确 umask
如果你能说出你打算使用的 ftp 守护进程的名称,我可以更具体一点
答案2
我建议的第一件事是安装 Webmin。它将完全满足您的要求,许多托管服务提供商也使用它。