【问题标题】:Properly Set Permission to /home/user folder for webserver为网络服务器正确设置 /home/user 文件夹的权限
【发布时间】:2013-02-17 21:14:44
【问题描述】:

我目前正在设置我自己的运行 CentOs 6 的 Linux 服务器。 我已经知道基本命令等,但我对 apache/php 安全性没有太多经验,尽管我对 PHP 本身有很多经验。

所以,为了测试我的服务器上的安全性,我编写了一个 PHP 脚本,其作用类似于“导航器”。我可以上一个目录,打开文件等等。

问题是,我的工具允许我上到“/”,我对此不太满意。 尽管 Apache 以“无人”身份运行,但它似乎可以访问整个服务器上的每个文件夹和文件。

我尝试像 cPanel 那样解决这个问题,但由于我没有 cPanel,我不知道这是如何完成的。

基本上我有这个:

/home/account/public_html
/home/anotherAccount/public_html

我想让“另一个帐户”无法访问“帐户”的文件。实际上我会喜欢它,所以“anotherAccount”甚至不能离开它自己的目录!

是的,我知道你在想:安装 suPHP/fastcgi/suExec,但我不能这样做,因为它们正在吃资源。我知道不安装其中任何一个都是可能的!我将我的脚本上传到了一些专业但不太知名的网络主机,我能够进入 / 使用它,但不能进入主目录,除了我自己的。 /home/ 列为空!

如何保护我的主文件夹?

【问题讨论】:

    标签: security permissions centos public-html


    【解决方案1】:

    您可以在 php.ini 中使用open_basedir 指令将脚本限制在一个目录中,请参阅documentation

    如果您希望不同的站点有不同的限制,PHP 实例必须具有不同的 open_basedir 值,可以在 apache 中基于每个虚拟主机进行设置。有关详细信息,请参阅堆栈溢出中的 this question

    但是,请注意open_basedir 不适用于使用system() 和朋友执行的外部命令。如果您想避免这种情况,最好继续以不同用户身份运行多个 php-fpm 实例或使用 suPHP。 this question 的答案之一包含有关如何设置所有权和权限以仅允许用户访问自己的文件的说明。

    【讨论】:

      猜你喜欢
      • 2017-08-04
      • 2018-12-11
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2012-07-17
      • 2014-12-07
      相关资源
      最近更新 更多