如果我有一个目录,并且用户对该目录具有读取权限,那么为什么无法检查该目录中是否有文件。例如,假设我有一个文件夹 /myfolder,其权限为读取。该文件夹中有一些文件“garbage.txt”,其权限为读取(对于用户而言)。当我尝试使用 stat /myfolder/garbage.txt 时,我收到权限被拒绝错误。如果我为 /myfolder 添加执行权限,那么我可以检查 trash.txt 是否存在。
为什么我需要执行权限来检查文件夹中的文件是否存在。我以为目录/文件夹的读取权限就足够了。
答案1
在 Linux 中文件夹权限是:
写入位允许受影响的用户创建、重命名或删除目录中的文件,以及修改目录的属性
读取位允许受影响的用户列出目录中的文件
执行位允许受影响的用户进入目录,并访问其中的文件和目录
粘性位规定,该目录中的文件和目录只能由其所有者(或根)删除或重命名
更多信息:
答案2
目录上的执行权限允许您遍历该目录。并且您需要能够遍历该目录才能对该文件使用 stat。
也可以看看https://stackoverflow.com/questions/790686/understanding-linux-directory-permissions-reasoning