共享网络托管环境中的文件系统权限

共享网络托管环境中的文件系统权限

如何在共享网络托管环境中设置文件和文件夹权限?你使用 apache + suexec 吗?如何防止组“www”的成员读取系统中属于其他用户的文件?(通过 ssh 或 php)

答案1

解决方案的一半是当监狱用户登录传输文件时,将其 chroot 到他们各自的 DocumentRoots 中。

通过使用 SSH(SFTP/SCP),可以轻松实现这一点Chroot目录指示。

编辑:

由于上述事实上的做法奇怪地被否决了,所以我也可能提供另一半。

通常,阻止 Apache 脚本模块访问 FS 上它们不应该访问的文件的唯一方法是通过 suEXEC 以 CGI 的形式运行它们。在我看来,这非常糟糕。然后,您需要单独确保每个用户的文件仅限于他们自己的 UID/GID,即。umask 027或者,有一些第三方模块可以在一个框中为您执行此操作,例如苏普

答案2

最常见的做法是,共享 Web 托管环境中的每个用户都有自己的 UID(用户名)和 GID(组),与 Apache Web 服务器所运行的 UID 和 GID 分开。您可以使用 suexec 使 CGI 以与用户相同的权限运行,而不是以 Web 服务器用户/组的身份运行。PHP 将通过以用户身份运行并不允许代码访问它没有权限的内容来为您完成此操作。

问题在于阻止成员读取文件。因为权限必须足够开放,以便 Apace 服务器可以读取它们,从而能够为它们提供服务。我建议如果每个用户都有自己的 UID/GID,那么文件使用 0664,目录使用 0775。这样就只给“其他人”读取权限。

答案3

FreeBSD 监狱是一种选择。

相关内容