【问题标题】:Php accessing Home directoriesphp访问主目录
【发布时间】:2023-04-04 00:03:02
【问题描述】:

我有一个脚本,我想访问 Linux 环境中用户的主目录。

Web 根目录:/var/www/html/ 并且有用户目录,例如:/home/john /家/大卫 等等

用户主目录中有文件。用户家的权限属于用户。例如: /home/david/file.txt 用户:david 组:david

是否可以使用 apache 访问这些文件?我想这不是因为许可,

有没有办法解决这个问题?

也就是说,我的/var/www/html/index.php下的php程序可以访问/home/david/foo.txt下的文件

我怎样才能做到这一点?谢谢。

【问题讨论】:

    标签: php linux apache permissions


    【解决方案1】:

    最好的方法是让用户将所需的特定文件放入pub 目录,然后将chmod 777 放入该目录。

    如果要访问主目录中的任意文件,则必须以 root 身份运行 Apache,这是一个 安全风险。 (虽然您可以更改主目录的权限,但根据我的经验,这可能会弄乱很多程序。)

    【讨论】:

    • 他还可以将 777 设置为单个文件并在不更改组等的情况下访问它们。
    • 如果 access 你的意思是 read,644 就足够了——不需要允许 Apache 写入这些文件。还要确保该文件的所有目录至少具有全局执行权限 (711)。
    【解决方案2】:

    也许我对这些事情有点偏执,但我认为这里在概念上有些错误:

    永远不应允许向 Web 公开的脚本访问用户的主目录。这么说的一个原因是 Web 服务器的入侵可能会导致主目录中的文件暴露给任何可以访问 Web 服务器的人。另一个原因是主目录中的文件(至少在我的理解中)是用户保存或多或少不应该对其他用户可用的个人/私人文件的地方。否则他们会把它放在公共目录中。

    虽然我不确定您的用例是什么,但我建议最好使用不同的概念,即 Apache 首先不需要访问其他用户的主目录。

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 2016-03-25
      • 2016-08-22
      • 2014-09-09
      • 2016-11-26
      • 2013-12-11
      • 2012-07-27
      • 1970-01-01
      • 2016-04-15
      相关资源
      最近更新 更多