如何在webserver目录中设置安全权限

时间:2014-10-13 11:09:46

标签: file permissions directory file-permissions

我真的很困惑这个问题。我阅读了很多教程,但每个教程都提出了不同的做法。

我在目录/ var / www中有一个webserve在该目录中每个网站都在新文件夹(博客等)中我认为文件夹的权限必须是755,文件644,OK。 但是用户和组是这个文件和文件夹的所有者呢?我读过一些人说必须要root:www-data其他人说www-data:www-data,其他人说这些做法不是出于安全原因。 对我来说这么复杂,因为我们必须能够创建文件,有时其他时间执行进程并且同时是安全的。 什么是最佳做法? 任何人都可以解释我 提前致谢

1 个答案:

答案 0 :(得分:1)

这是没有最终答案,没有"对"或"错误"。

这取决于您的个人理念,但也许一些通用规则可以提供帮助:

  1. 总是试图尽可能少地授予权利,以便在不费力的情况下尽可能保持安全性

  2. 更喜欢将写入和读取权限分离到不同的角色,理想的是只有本地帐户能够写入Web资源,而Web服务器进程只能读取这些文件。

  3. 对于许多现代&#34; Web应用程序而言 工作<#em>,其中大部分都是对该帐户的写入权限。这显然会带来很大的安全风险,因为您必须完全依赖其他人实施的代码质量。这是一种糟糕的情况,特别是在Web编程领域,其中安全漏洞的定义可从外部访问。因此,至少要尝试将这些权限限制为真正需要写入的资源:

    3.1仅向数据文件夹和嵌入式数据库文件等内容授予写入权限

    3.2仅在真正需要时才授予对实现文件本身的写访问权限,例如在更新期间临时

    3.3如果可能,还尝试将Web应用程序的运行时数据和实现文件存储为单独的位置。

  4. 确保http服务器进程归本地用户帐户所有,该帐户授予本地登录名(请参阅/etc/passwd,应该配置无效的shell) ,或一些类似的预防措施)。

  5. 要非常小心执行权。只有极少数情况下,http服务器进程确实需要对已发布文档/文件中的文件执行权限。

  6. 执行授予对物理文件的直接访问权限,始终&#34; stream&#34;文件(其内容)通过处理程序,因此脚本能够控制,验证和拒绝此类请求。

  7. 仅激活http服务器中真正需要的模块和功能。

  8. 一如既往最重要的规则:

    1. 了解您在做什么,盲目地遵循任何解释,建议或提示。

    2. 在常规基础上检查您的日志文件,然后推开那些涌入您眼睛的东西。