Unix 目录层次结构权限

Unix 目录层次结构权限

假设我有一个目录,除了 root 之外,其他人都无权访问。我能保证除了 root 之外,其他人都无权访问目录中的所有内容吗?换句话说,文件权限是否是分层的,这样如果用户无法访问某个目录,他们就无法访问其中的任何内容,即使他们有权访问目录中的某些内容?

答案1

答案主要是“是的”,在特殊情况下可以“不”

因为 unix 文件不能保证具有唯一路径。所以如果你有

$ ls -l
drwx------- 1 root  root [...] root_only

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file

并且hopefully_private_file与其他地方有硬链接可能具有普遍可读性。

你怎么知道?再看看那个ls -l

$ ls -l root_only
-rw-rw-rw-- 2 root  root [...] hopefully_private_file
            ^
            |

箭头上方的数字是链接数(对于文件,它对于目录有不同的含义)。如果链接数为 1,则表示安全;如果是其他数字,则可能有问题。

答案2

要显示目录中的某些内容,dir/您需要获得+x能够定位文件 inode 的权限。因此,如果您没有 +x,即使文件是 ,您也无法读取它777

答案3

没错,删除父目录的权限会影响该目录内任何内容的操作能力。

如果用户没有目录的执行权限,他们将无法查看目录中的任何文件。

您可能还想删除该目录的读取权限,这样他们就无法看到该目录的内容(文件名)。

相关内容