在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:删出一个文件,我们是对这个目录进行操作。并不需要对改文件有任何的权限,就可以删除这个文件。
请选择你看完该文章的感受:
随机文章:
This entry was posted
on Thursday, June 4th, 2009 at 21:51and is filed under Linux.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.