linux的文件权限问题

文件权限

最近尝试配置wordpress环境,想在上面记录一些自己的笔记。

配置环境过程中遇到了很多文件权限的问题,故写下第一篇,也是测试一下wordpress好不好用。

实验是这样的,假设一般使用的账户为User_A,另一个为User_B。

User_A设置家目录一个文件夹,随后建立一个以User_B为拥有者的文件,文件夹设置其他用户不可访问的权限,A和B是不同组,想测试User_B能不能直接访问本属于User_A用户的文件夹下的自己的文件。

不出意外,没权限访问,即使打开vim,底下也显示“Permission Denied”。

修改权限再试试。

这次情况倒是出乎我意料,权限依旧被拒绝。按道理,如果可以读取文件夹,那么文件夹下的自己的文件应该可以被User_B访问啊。

原因就是:我混淆了执行和可读两种权限的作用。

可读权限是允许用户查看目录内容,如果这时使用

那么就会打印testdir目录下的所有文件名。

因为文件夹(目录)本身只存放文件夹下所有文件的索引(存放位置),甚至这些索引通常也不指向文件的真实位置,而是指向的文件控制块(FCB)或者inode之类的。所以并非文件夹去存放其下文件本身,而文件夹只是一个索引块,这也是sc小学二年级就学过的知识。

可以想到的是,调用文件夹,就可以去访问其下文件。于是有

可以访问,并做出修改。

注意到这时候没有给予B可读文件夹的权限,于是

另外,在只有只读权限,没有执行权限的情况下。User_B用户 ls 该文件夹,会出现只能打印文件名,而无法显示其相关信息的情况。这正说明,系统是通过调用文件夹的索引去寻找其下文件的控制块。