【问题标题】:How to restrict user from accessing directory but not the files which are inside it如何限制用户访问目录而不是其中的文件
【发布时间】:2016-12-28 17:23:01
【问题描述】:

我有一个 html 文件,其中包含上传到服务器的图像。我以这种方式包括它们。假设文件的路径是 Images/img1.jpg、Images/module1/img1.jpg,这些是相对路径。如果我在浏览器中输入“domain.com/Images/img1.jpg”和“domain.com/Images/modul1/img1.jpg”这些文件应该可以访问。但是当我输入“domain.com/Images/”或“domain.com/Images/module1”时,它们应该无法访问。它应该显示在这些情况下访问被拒绝。

【问题讨论】:

  • 你应该添加更多关于你想要什么的细节,读起来听起来很混乱。此外,您如何“包含”文件也不清楚。你复制它们吗?一个进程上传它们? (在这种情况下,哪个用户运行该进程)。也许您应该逐条说明您是否希望它们在世界范围内可读,您希望哪些可读可写,哪些您不希望可读或可写。
  • @ezra-s 我有一个 html 文件,其中包含上传到服务器的图像。我以这种方式包含它们。假设文件的路径是 Images/img1.jpg、Images/module1/img1.jpg,这些是相对路径。如果我在浏览器中输入“domain.com/Images/img1.jpg”和“domain.com/Images/modul1/img1.jpg”这些文件应该可以访问。但是当我输入“domain.com/Images/”或“domain.com/Images/module1”时,它们应该无法访问。在这些情况下,它应该显示拒绝访问。你清楚吗?
  • 您的意思是您不希望在请求目录时列出它们?如果是这样,请为主目录和后续目录配置 httpd(如果您已使用“Options -Indexes”进行定义)
  • @ezra-s 是的,当有人请求目录时,我想向用户显示“拒绝访问”。你能帮我如何配置httpd吗?
  • 我在之前的评论中提到过,在 Apache HTTPD 内的目录指令中,设置 Options -Indexes,如果你愿意,你可以展示你如何拥有它(修改你的问题的描述),我会用答案为你修复它

标签: apache ubuntu file-permissions


【解决方案1】:

由于您似乎描述的是避免在 apache 中列出目录,因此您只需像这样设置目录:

<Directory /full/path/to/Images>
    Options -Indexes
    Require all granted
</Directory>

此外,您可以使用DirectoryIndex index.html为这些目录添加欢迎页面

此配置将在所有子目录中传播,因此您无需在所有子目录中一一定义它们,因此除非您已经有一个覆盖该子目录的配置,否则该配置将在目录树中进一步应用。

注意:如果您使用的是 2.2,则应使用“全部允许”而不是“要求全部授予”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2015-02-21
    相关资源
    最近更新 更多