通过目录权限保护 Linux 服务器

通过目录权限保护 Linux 服务器

我在 Linux/Apache 服务器上使用 php。我有三种类型的目录,例如

|_ Writeale Directory
|_ PHP Files 
|_ Image Files

可写目录仅供 PHP 使用,用于写入一些 txt、图像...服务器执行的 PHP 文件并返回 HTML 代码图像文件目录仅包含 jpeg、gif、swf 等图像...

每个目录需要哪些权限?目录的默认权限是什么(由 FTP 或 PHP 创建)?我的服务器默认值是 755。它安全吗?

权限对服务器性能有影响吗?

答案1

一个非常概括的概述:

  • 用户(即 PHP )可以写入数据的目录应该位于 httpd 文档根目录之外。
  • 包含 apache 应读取的内容的目录需要全局读取权限,其他的就不多说了,即 0755 就足够了。
    目录需要执行权限;文件不应该具有执行权限。
    不,PHP 文件也不应该具有执行权限。
  • 默认权限由为 apache 运行的用户设置的 umask 决定。
  • 上传的文件应该经过检查和验证才能下载。

根据您所在的国家/地区,如果您允许人们上传病毒并分发供下载,您可能要承担责任。

答案2

如果不知道哪些对象应该具有受控访问权限以及哪些用户需要哪些访问权限,就无法设计安全模型。但您没有提到文件是如何部署/更新的(更重要的是由谁部署/更新)。您也没有说明文件/目录的所有权 - 如果没有这个,“0755”就毫无意义。

隐式地,如果 PHP 以 Web 服务器 uid 运行,则所有文件都必须可由 Web 服务器 uid 读取。但还有其他方法可以控制 PHP 脚本和文件之间的交互(suPHP、safe_mode)。

每个目录需要哪些权限?

正确的——不可能更具体。

目录(由 FTP 或 PHP 创建)的默认权限是什么?

这取决于您如何配置 PHP、FTP、操作系统和权限控制系统。

我的服务器默认值是 755。它安全吗?

可能不是。允许在文档根目录中存在可执行文件是危险的。允许直接访问(用户)上传的文件也是危险的。

答案3

首先,权限会影响性能。更准确地说,每次都会检查权限,无论它们被定义成什么,都不会对性能造成限制。出于安全原因,您应该设置最严格的权限。如果您的 Web 服务器使用您的帐户访问您的文件,请将您的目录访问权限更改为 700。如果 Web 服务器使用 www-data 用户访问您的文件,您可以更改组或其他访问权限。您没有向我们提供信息,但 Web 服务器需要写入这些目录?还是只是读取?

默认权限由 shell、FTP 服务器或 PHP 中的 umask 参数定义。

相关内容