我已经在一个新的VPS上安装apache2-mpm-itk,在同一台服务器上运行多个站点,并按照以下指示进行隔离: http : //www.webtatic.com/packages/httpd-itk/ 。 我想尽可能地locking它,但也需要能够pipe理每个虚拟主机上的每个虚拟主机用户的文件。
他build议设置webroot文件夹的所有者和权限,如下所示:
chown owner-user:vhost-group /path/to/webroot chmod o-rwx /path/to/webroot ls -ald /path/to/webroot # drwxr-x--- 20 owner-user vhost-group 4096 Apr 5 19:38 /path/to/webroot
在我的服务器上,我有root用户,一个是sudoer的非root用户,还有这个站点的vhost-user(没有sudo权限)。
设置拥有755权限的webroot,然后将所有者设置为owner-user(我将其设置为非root用户的sudoer用户)意味着我无法将webroot中的文件和目录修改为vhost-user。 (在Web根上没有组写入权限)。 我唯一能想到的就是给予vhost用户的sudo权限,但看起来并不安全。
文章说,所有者用户是webroot的所有者,因为:
我没有改变目录的用户为vhost-user的原因是它会给httpd进程写访问权限,你仍然应该照顾,就好像用户代码中存在漏洞一样,这些文件可能会被黑客攻击。
我如何设置权限/用户等是安全的,但仍然允许虚拟主机用户pipe理自己的主目录?
另外,在webroot中,我应该如何设置我的PHP文件和目录的权限,以使它们与同一服务器上的其他用户/组保持隔离?
首先一句话。 你应该使用过
chown -R owner-user:vhost-group /path/to/webroot chmod -R 640 /path/to/webroot chmod -R u+X,g+X /path/to/webroot
如果/path/to/webroot不是空的。
对你的问题的愚蠢,但不幸的正确答案是简单的:对不起,你的问题没有意义。 为什么?
你定义(即接受该网站的定义)“安全”为“对用户X没有写入权限”。 现在,您希望两者都是“安全的”,并为该用户提供写入权限。 这显然是不可能的。
在这种情况下,只有给出“安全”的确切和可用定义,才能回答您的问题。
我的第一个build议是分离用户。 为什么vhost-userpipe理文件而不是额外的vhost-manage帐户? 有这个要求是否有意义?
接下来的一点是:没有对目录的写入权限只能防止你删除和创build文件,而不能修改这些文件。 你只需要写入这些文件(不一定是所有的文件)。
通过sudo脚本创build和删除文件对我来说看起来没有安全风险; 特别是如果这不是以root身份完成,而是作为唯一目的是这个目录树所有权的用户。