LINUX:浅谈目录与普通文件权限的意义

时间:2021-12-31 15:30:01

        目录和常规文件一样使用相同的权限位进行标识,但是它们的翻译不同。

             目录的读权限允许用户使用该权限列出目录内容。

         写权限意味着用户使用该权限能够在目录 中创建或者删除文件。

         执行权限允许用户输入目录并访问任意子目录。没有执行权限,目录下的文件系统对象就是不可访问的。

      没有读权限,目录下的文件系统对象 在目录清单下就是不可见的,但是如果知道磁盘上对象的完整路径,这些对象仍是可访问的。

      目录与普通文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同导致。

对于普通文件的权限:
r(read):       允许读权限,比如可以使用cat <file name>之类的命令来读取某个文件的内容
w(write):    允许写权限,表示你可以编辑和修改某个文件的内容

x(execute): 允许执行权限,通常指可以运行的二进制程序文件或者脚本文件。

       Linux上不是通过文件后缀名来区分文件的类型。 在Linux中,文件能够被执行是由"x"这个权限来决定的,而跟文件的扩展名(主要依靠file命令判断)没有半毛钱关系。不过拥有可以执行的能力, 与能否执行成功,是两码子事儿。


但是对于目录的权限位则很容易混淆,这里要注意区分:

对于目录的权限:

r (read contents in directory):读取目录里面的内容。可以使用 ls 命令将目录内容列举 ,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件。

w (modify contents of directory):编辑目录里面的内容。

     拥有更改该目录结构列表的权限:

     主要包括 :
   1、创建新的文件与目录
   2、删除目录下面的文件与目录(无论对该文件的权限是什么都可以操作)
   3、对目录里面的文件与目录重命名

   4、移动目录里面的文件与目录的位置

x (access directory):代表的是用户能否进入该目录成为工作目录(cd 命令)

注意:目录要同时具有读权限执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息

要编辑文件内容,那么必须对该文件拥有 rw 权限。

要编辑目录内容,那么必须对该目录拥有 wx 权限。


LINUX判断文件类型:(好像底层是依靠magic number检测法

        Linux的file命令用来通过探测文件内容判断文件类型,使用权限的所有的用户。file命令可以知道某个文件是二进制可执行文件还是Shell Script脚本文件,或者是其他格式, file能识别的文件包括目录, shell脚本, 英文文本,二进制可执行文件, C语言源文件, 文本文件, DOS可知性文件等等。


file命令的格式是 file 【option】 文件名

options的主要参数有

-v 在标准输出后显示版本信息,并且推出

-z 探测压缩过的文件类型

-L 允许符合连接

-f name 从文件namefile中读取要分析的文件名列表