读取和执行权限本质上是等效的吗?

Ran*_*lue 3 linux permissions file-permissions

读取和执行权限是否相同?

如果有读权限,他们可以只读取内容,将它们复制到一个新文件中,为该新文件添加执行权限,然后执行新文件。

如果有执行权限,则必须读取文件指令,因此隐含读取权限。

我在这里缺少什么?读取和执行权限本质上是一样的吗?一个是否暗示另一个?

use*_*686 6

对于文件,有一个权限集而不是其他有意义只有当文件也有“的setuid”或“setgid的”位设置,或者如果它被赋予不同的功能使用setcap。如果您制作自己的可执行文件副本,它将无法获得相同的权限,因为只有 root 可以保留原始所有者或更改文件功能。

对于目录, “执行”的意思是“遍历目录”——访问目录的内容需要它。如果你有+x但没有+r,那么你可以访问里面的文件,但你必须知道它们的名字。如果您有 +r 但没有 +x,您可以列出(读取)存储在该目录中的文件名,但不能访问实际文件。

  • 即使没有 `setuid`/`setgid`,使用 +r 而不是 +x 也是有意义的。想想网络服务器上的上传目录。也许您希望允许用户上传头像图像 - 您希望将文件标记为 +r 以便服务器可以读取图像,而不是 +x 以便如果他们尝试上传恶意病毒并欺骗服务器执行它,它可能会失败(取决于攻击方法)。 (6认同)