目录的可执行权限

在linux中,一切东西都是文件。并不是只有普通文件具有访问权限。

《unix环境高级编程》中总结了这么几点:
1:无论何时我们去读一个文件,必须具有包含改文件的所有目录的可执行权限。例如:我们读/usr/include/stdio.h,必须就有 /,/usr,/usr/include 各个目录的可执行权限。至于改文件的其他权限,看我们是read-only还是read-write。
还有一点,也是我比较糊涂的一点:目录的读权限和可执行权限是不同的。
这个目录的读权限很好理解:目录就是包含下面文件名和i结点的对应关系。能读这个目录,就能知道改目录下面有哪些文件。至于文件的一些属性这要靠改目录的可执行权限。让我们看一个例子:

#ls -ld html
drwxr-xr--  2 root root 4096 Jun  4 21:23 html

html这个目录,对应其他的用户来说是可读的。我们用其他用户登陆后,可以用ls命令读出该木下有哪些文件。

$ls  html
test

但是我们用ls -l 来得到html目录下面文件的一些属性的时候却是这样:

$ls -l html
total 0
?---------  ? ? ? ?           ? test

我们不能读这个test文件的一些属性。而且我们以其他用户用cd命令来进入html这目录的时候提示: Permission denied。我们没有权限进入这个目录。
2:如果我们想在一个目录中创建一个文件。必须具有对该目录的写权限和可执行权限。
3:删出一个文件,我们是对这个目录进行操作。并不需要对改文件有任何的权限,就可以删除这个文件。

请选择你看完该文章的感受:

不错 超赞 无聊 扯淡 不解 路过

随机文章:

发表评论