您的位置:首页 > 运维架构 > Linux

关于目录文件所需权限的讨论

2017-03-20 23:06 211 查看
关于目录文件所需权限的讨论

条件:1,在目录下可以创建文件;

           2,可以显示文件。

  在Linux系统内文件有三种身份(所有者u,用户组g,其他人o),每种身份都有三种权限(r,
w ,x),我们都知道可以使用chown,chgrp,chmod来修改这些权限和属性。那么 这些文件权限对于一般文件与目录文件有何不同呢?下面详细介绍。


     权限对于目录的重要性

     1,文件是存放实际数据的所在,目录的主要内容就是记录文件名列表,文件名与目录有着强烈的关联。所以如果是针对目录,r,w,x分别有何意义?

     r:表示具有读取目录结构列表的权限。所以你要在目录下读取显示文件则r权限是必须的。有r权限的目录你可以查询它下面的文件名数据,可以利用ls指令将该目录的内容列表显示出来。

    w:表示具有可写入数据的权限。这就意味着你拥有具有更改该目录结构列表的权限 。具体权限如下:a,创建新的文件与目录;b,删除新的文件与目录;c,对已存在的文件或目录进行重命名;d,转移该目录内的文件与目录位置。

    x,表示目录的可执行权限。目录不能被执行。目录的x代表着是用户能否进入该目录成为工作目录的用途,所谓的工作目录就是你当前所在的目录。

  

 下面我来举几个实例,大家可以认真了解一下目录权限。

 




如上图,所有者的权限为0,也就是说没有权限,这导致访问该目录失败



 






上图:所有者的权限分别是4和2,也就是说分别具有可读权限和可写权限,但是访问还是失败。

 


 


如图,使用者权限为可执行,通过pwd显示的工作途径来看成功进入code目录,但是访问其中内容失败。

 


 


如图,使用者权限为3(可写且可执行),通过pwd显示的工作途径来看成功进入code目录,但是访问其中内容失败。

 


 


如图,使用者权限为5(可读且可执行),通过pwd显示的工作途径来看成功进入code目录,且成功显示内容,但是通过mkdir修改其内容时,却失败了。

 




如图,使用者权限为6(可读且可写),但是访问失败

 


 


如图,使用者权限为7(可读,可写,可执行),通过pwd显示的工作途径来看成功进入code目录,且成功显示内容,通过mkdir也成功修改其内容。

 

   而对于系统来说,创建一个文件他的默认权限是什么呢?这就牵扯了一个指令umask,umask设置了用户创建文件的默认权限。它与chmod的效果正好相反umask设置的是权限的“补码”,而chmod设置的是文件权限码。看下两张图













        图一为新建文件test,他的默认权限是rwx rwx r-x ,即775.而指令umask之后展示的值为002,正好是775的“补码”。

注:有的系统的umask值为0022,即他的默认权限为755.

综上:要在一个目录下成功的创建文件且显示出来,使用者权限必须为7(r,w,o)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息