如何组织 /home/ 以使用户看不到彼此的内容?

如何组织 /home/ 以使用户看不到彼此的内容?

据了解,我使用了沙箱服务器只为我自己,网站位于以下子目录中/home/www/

drwxr-xr-x  5 root root 4096 Nov 30 14:45 www
|--- drwxr-xr-x  3 www-data www-data 4096 Oct 14 22:04 mywordpress  (subdir of /home/www/)

我看到的唯一用户/组是rootwww-data

现在我想允许朋友在此沙箱服务器上托管一个网站。我创建了一个用户帐户abcd,他的家是/home/abcd/。在 中/home/,我目前有:

drwxr-xr-x  3 abcd abcd 4096 Dec 10 12:02 abcd
drwxr-xr-x  5 root root 4096 Nov 30 14:45 www

问题:如果我使用该帐户通过 SSH 登录abcd,我仍然可以浏览/home/www/,这是我不想要的!然后我想我应该给drwxr-xr--这个目录权限,但后来我担心Apache/PHP相关的东西,经常使用www-data,将无法再浏览/home/www/

/home/问题:您能否推荐一个简单的沙箱服务器目录结构,允许我和一个朋友abcd托管 Apache+PHP 网站,而无法abcd在 中看到我的文件/home/www/? (注意:www-data应该仍然可以看到文件,我认为这是必要的?)

答案1

这个问题没有直接的答案,因为还有其他细节需要解决。然而,权限部分非常简单。

chgrp www-data /home/www
chmod 0750 /home/www

这会维护 root 的 rwx,为 www-data 提供 rx,并删除所有其他人的所有访问权限。这不是递归更改,因此 Word Press 网站仍然具有所需的写入权限。

还可以为用户提供abcd一点隐私,以防止以相同方式创建的任何未来用户。

chgrp www-data /home/abcd
chmod 0750 /home/abcd

请注意,任何有权访问 Web 服务器的用户也可以使用它来读取/home/www.例如,通过任何类型的文件包含...使用 Web 服务器本身或通过 Web 服务器使用的编程技术,例如 PHP。 Web 服务器配置和已安装的任何 Web 编程语言(甚至 CGI)可能需要进一步的限制。请记住,abcd用户有权访问用户www-data;因此,总体目标的这一部分是一个开始,而不是结束。


要获得剩余部分的良好答案,请提出一个新问题,其中包含有关 Web 托管环境的所有详细信息。

  • 操作系统名称和版本
  • Web 服务器名称和版本
  • 任何 Fast CGI 软件的名称和版本
  • 快速 CGI 配置
  • Apache 配置文件
  • PHP 版本和配置文件
  • 其他相关信息

提供尽可能多的相关信息(不提供太多细节)将有助于回答者提供详细的答复。也许从发布的文件中删除评论以消除尽可能多的“噪音”。

相关内容