Linux 目录与文件权限简述

  如果说在Java世界中,万物皆对象,那么在Linux世界中,可以说万物皆文件。Linux文件一般分为两种,一般文件和目录文件。文件权限对于数据安全至关重要,有必要清楚的知道一般文件权限和目录文件权限的意义。

权限对文件的重要性

  文件是实际含有数据的地方,包括一般文本文件、数据库内容档、二进制可可执行文件(binary program)等等。 因此,权限对于文件来说,它的意义是这样的:

   r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;

    w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);

   x (eXecute):该文件具有可以被系统执行的权限。

  可读(r)代表读取文件内容比较好理解,那么可执行(x)呢?因为在Windows下面一个文件是否具有执行的能力是借由“ 扩展名 ”来判断的, 例如:.exe, .bat, .com 等等,在Linux下面,我们的文件是否能被执行,则是借由是否具有“x”这个权限来决定的!跟文件名是没有绝对的关系的!至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限对于文件的rwx来说, 主要都是针对“文件的内容”而言,与文件文件名的存在与否没有关系!因为文件记录的是实际的数据!

权限对目录的重要性

  文件是存放实际数据的所在,那么目录主要是储存啥玩意?目录主要的内容在记录文件名清单,文件名与目录有强烈的关连! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

   r (read contents in directory):

  表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

    w (modify contents of directory):

这个可写入的权限对目录来说,是很了不起的! 因为它表示你具有异动该目录结构清单的权限,也就是下面这些权限:

创建新的文件与目录;

删除已经存在的文件与目录(不论该文件的权限为何!)

将已存在的文件或目录进行更名;

搬移该目录内的文件、目录位置。 总之,目录的w权限就与该目录下面的文件名异动有关就对了啦!

     x (access directory):

  那么,目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是使用者能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登陆Linux时, 你所在的主文件夹就是你当下的工作目录。而变换目录的指令是“cd”(changedirectory)!

  现在假设“文件是一堆文件数据夹”,所以你可能可以在上面写/改一些数据。而“目录是一堆抽屉”,因此你可以将数据夹分类放置到不同的抽屉去。 因此抽屉最大的目的是拿出/放入数据夹喔!现在让我们汇整一下数据:

元件   内容         叠代物件   r   w   x  
文件   详细数据data   文件数据夹   读取文件内容   修改文件内容   执行文件内容  
目录   文件名   可分类抽屉   读到文件名   修改文件名   进入该目录的权限(key)  

    

  

  根据上面的分析,可以看到,对一般文件来说,rwx 主要是针对“文件的内容”来设计权限,对目录来说,rwx则是针对“目录内的文件名列表”来设计权限。 其中最有趣的大概就属目录的x 权限了!“文件名怎么执行”?没道理嘛!其实,这个 x 权限设计,就相当于“该目录,也就是该抽屉的 "钥匙" ”啦! 没有钥匙你怎么能够打开抽屉呢?对吧!

具体实例

  例1:有个目录的权限如下所示:

  drwxr--r-- 3 root root 4096 Jun 25 08:35 test

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13135.html