据了解,我使用了沙箱服务器只为我自己,网站位于以下子目录中/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/)
我看到的唯一用户/组是root
和www-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 版本和配置文件
- 其他相关信息
提供尽可能多的相关信息(不提供太多细节)将有助于回答者提供详细的答复。也许从发布的文件中删除评论以消除尽可能多的“噪音”。