Linux中目录的读写和运行权限与文件的区别

读取权限

  • 文件的读取权限表示是否能够读取其inode所指示的block内容,而不是inode内容,inode的读取权限与目录有关,如下图
    文件读取权限
    可以看出文件虽然什么权限都没有,但是仍然可以获取到其inode号码。
  • 而目录的读取权限表示可以获取其block中所有的文件名信息,但是注意其只是获取目录下的所有文件名,并不能获取到其inode信息,因此也就不能读取文件内容
    文件写入权限

    运行权限

  • 文件的运行权限很好理解,就是能否直接让操作系统去解释执行内容,而不必让操作者看到其block内容
  • 目录的运行权限比较难理解,从上面的图2 中可以知道目录如果没有运行权限,就无法获取其目录下各个文件的inode编号,但是经过测试,如果仅仅具备rw权限,也是无法往目录下创建文件的,因此可以理解为,x权限控制着目录的block中其目录下所有文件的inode信息,没有x权限,就无法修改或者去读其下文件的inode信息,自然也就无法读取文件或者修改文件。
  • 总的来说,目录的运行权限再大多数情况下都是必备的,所以最好保证它,可以通过控制目录下文件的权限来达到自己的效果。

    写入权限

  • 文件的写入权限表示是否能够读取block中的内容
  • 目录的写入权限就表示能够对block中的文件的内容进行修改,即与运行权限对比来看

总结

可以参考鸟哥的Linux私房菜
一、让使用者能进入某目录成为『可工作目录』的基本权限为何:

可使用的命令:例如 cd 等变换工作目录的命令;
目录所需权限:使用者对这个目录至少需要具有 x 的权限
额外需求:如果使用者想要在这个目录内利用 ls 查阅档名,则使用者对此目录还需要 r 的权限。
二、使用者在某个目录内读取一个文件的基本权限为何?

可使用的命令:例如本章谈到的 cat, more, less等等
目录所需权限:使用者对这个目录至少需要具有 x 权限;
文件所需权限:使用者对文件至少需要具有 r 的权限才行!
三、让使用者可以修改一个文件的基本权限为何?

可使用的命令:例如 nano 或未来要介绍的 vi 编辑器等;
目录所需权限:使用者在该文件所在的目录至少要有 x 权限;
文件所需权限:使用者对该文件至少要有 r, w 权限
四、让一个使用者可以创建一个文件的基本权限为何?

目录所需权限:使用者在该目录要具有 w,x 的权限,重点在 w 啦!
五、让使用者进入某目录并运行该目录下的某个命令之基本权限为何?

目录所需权限:使用者在该目录至少要有 x 的权限;
文件所需权限:使用者在该文件至少需要有 x 的权限