执行文件需要读取权限吗?很自然地认为是,因为文件的执行需要将文件加载到内存中。如果答案是否定的,那是为什么呢?
特别是,当文件是目录时,同样的问题?
谢谢。
答案1
当你执行一个文件时,很多情况下你不需要读取它,因此你不需要读取权限。你是对的,系统需要代表你读取它,但事实并非如此定义为需要读取权限(因为没有任何运行需要访问文件的内容)。
例外情况是执行文件涉及读取它的任何情况,通过使用您的凭据运行的进程。因此,shell 脚本(实际上是一般脚本)需要读取权限,就像 . 处理的任何可执行文件一样binfmt_misc
。
同样,访问目录并不涉及读取它:您可以进入目录而不列出其内容。可以将其视为戴着眼罩探索建筑物:执行/搜索权限允许您解锁门以更换房间(只要您已经知道门在哪里),读取权限允许您摘下眼罩以查看房间里的东西。