读取和执行之间的区别,文件权限

11

这听起来像是一个相当基础的问题,但我有点困惑于何为“读取”文件和“执行”文件。

例如: 用户1从在线网站购买了一张车票,想要查看(以jpeg形式显示在网站上)该车票。

这是否被视为“读取”文件?还是实际上执行了文件?

如果用户权限设置为“只读”,这意味着用户可以通过网站上的操作(在本例中为所购买车票的图像)访问该文件,但不能通过直接的url链接访问该文件,例如www.exampletickets.com/user1/tickets。


1
你是在说磁盘上的文件权限吗?就像你用chmod设置的那些权限? - rickdenhaan
文件权限将不能提供满足所描述的认证/授权(ACL)需求。 - ficuscr
https://serverfault.com/questions/345833/what-are-perfect-unix-permissions-for-usual-web-project-directories - Cedric
2个回答

18

文件夹权限:

  • 执行 -> 实际进入该文件夹,但无法阅读其内容,不能看到其中存储的文件。
  • 读取 -> 能够读取文件夹中的内容
  • 写入 -> 编辑文件夹数据。可以在其中删除或创建新文件/文件夹等操作。

文件权限:

  • 执行 -> 如果它是脚本文件,如index.php,则运行它以从中获取数据
  • 读取 -> 如果它是文本文件,如index.htmlindex.php,则能够读取它
  • 写入 -> 修改文件数据的能力

至于安全性,这些权限仅在您的服务器可以被其他(不属于您的团队)用户访问时才会成为问题,这主要发生在人们使用托管服务时,他们没有得到专用操作系统,而是一个操作系统,所有用户都将其数据上传到其中。因此,如果未正确保护,他们可以查看和编辑彼此的源代码。

现在,通常情况下,您会获得一个专用服务器,带有更多安全工具和仅能由您访问而无法由其他人访问的操作系统(虚拟化技术)。

因此,您不必担心有人会查看或更改您的数据,因为只有您才可以访问该服务器。


啊,现在我明白了!感谢你的解释。最后一个问题:如果根文件夹被设置为只执行,但其子文件夹被设置为读写,哪个权限会占优? - arsenalftw067
@arsenalftw067 如果我的答案解决了您的问题,您可以将其标记为“正确”的答案。 提前致谢 - Giulio Bambini
如果根目录具有执行权限,则可以访问它,但无法读取或写入。 如果子目录拥有所有权限,则可以读取其内容以及编写和执行它。 - Giulio Bambini
2
我不会将“index.php”作为执行权限的示例。更准确地说,是执行“php”二进制文件并读取“index.php”文件。 - SameOldNick
那么,如果index.php文件允许读取权限但不允许执行权限,那么其中的PHP代码(<?php ?>)就不会运行,而是被跳过了对吗? - Elijah Mock

1

Web服务器(如apache、nginx等)通过读取而非执行任何图像文件(以及其他任何文件),提供对它们的访问,无论是直接访问还是间接访问。

此外,Linux文件权限是由机器本身授予的 - 在这里,用户将是运行Web服务器实例的用户 - 通常是一个名为“www-data”的Linux用户。因此,它与您网站的用户没有任何关系。

欲了解更多信息(有关常规Web项目目录的完美文件和目录权限是什么?) -> https://serverfault.com/questions/345833/what-are-perfect-unix-permissions-for-usual-web-project-directories


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接