可能重复:
什么是最好的Linux权限用于我的网站?
我试图得到一个规范的答案如何设置权限的Apache与面对Web根( /var/www )。 根据这个非常受欢迎的答案 ,给apache写入访问/var/www似乎没问题,而在其他地方 (看评论),这似乎是一个禁忌。
有人能发光吗? 如果这本身就是一个安全风险,那么你能准确地描述它将如何被利用吗?
更新:
假设一个私有服务器,我们关心的只有两个用户是'apache'和'root'。
授予用户对目录的写入权限,使用户可以对该目录中的任何内容进行写入,修改和删除权限,无论其拥有者或个人权限如何。 networking服务器用户代表有权访问其所服务网站的任何人员工作。 在大多数情况下,除非有特定的安全规则,否则任何人都是普通的互联网。 因此,具有基本知识的互联网上的任何人都可以删除和/或修改文件,或者在您的目录结构中放置不需要的内容来提供它们。
推荐的解决scheme是在公共结构之外有一个可写的目录,一个安全脚本可以访问,向公众写入/呈现内容。 如果你绝对必须在公共结构中有一个可写的目录,那么我会把它变成一个难以理解的底层目录,这个目录从来不会被用于通用互联网的读取。 但从来没有你的网站结构的顶部。
不幸的是,如何利用面向服务器的服务器写入不受保护的文件系统这个通用的问题是没有答案的。 除了可能运行的任何不安全的脚本(PHP; CGI; PERL; JAVA)以外,它还取决于Web服务器和支持服务(例如:PHP; JAVA等)以及正在运行的特定版本的攻击网站。 关键是,作为一个networking/系统pipe理员,你不应该打开写入你的磁盘,完全相信上述任何项目来保护你。 而且,传播这些信息也是不道德的。
两个链接之间的主要区别在于,第一个链接仅将权限775设置到文件夹 。 第二个权限设置权限775到它下面的所有文件和文件夹以及它自己 。 后者是使所有文件都可执行的大问题。 您不希望用户上传的文件被执行。
除了文件,关于文件夹本身的安全性:
如果apache拥有对文件夹的完全访问权限,并且它是一个共享环境(如共享主机),那么可以产生apache进程的其他用户(无论是合法用户还是黑客)都可以添加/修改共享networking的任何部分通过apache用户的服务。 如果只有一个用户使用这台机器,我认为两者之间没有任何重大的安全差异。