打开文件和当前目录的权限

打开文件和当前目录的权限

我正在尝试了解 unix/linux 中的文件和目录权限。

我想我已经有了大概的想法,如果我愿意的话

cat ~/foo/bar/text.txt  

我需要、、x+r的许可,以及的许可。~~/foo~/foo/barr~/foo/bar/text.txt

但假设我没有x权限~/foo/bar,并且不知何故我当前的目录是~/foo/bar(可能是root用户su user在那里创建的),假设我在那里输入

cat text.txt

rwx从我的测试来看,即使我有权限,它也说我没有权限text.txt

所以我的问题是:当我打字时

cat text.txt

系统是否真的解释cat ./text.txt并检查当前目录权限? (我认为我在路径中没有提到的目录不会被检查权限,但也许当前的目录也不会被检查?)

因此,在这种情况下(我当前的目录是~/foo/bar并且我想做cat text.txt),权限~/foo并不重要,但权限却~/foo/bar重要吗?

答案1

文件打开操作确实需要读取其目录条目的属性和物理位置,这些属性和物理位置存储在当前目录(文件)中。

这就是您遇到许可问题的原因。

否则,您的假设是正确的,系统仅访问指定的路径。sudo如果您只是授予x对本地目录的访问权限,这将使该文件在您的示例中可访问。

r请注意,检索目录条目不需要该权限,但列出其内容需要该权限。

相关内容