文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>文件属性

文件属性

时间:2010-09-26  来源:fzguon

一、Linux文件属性
    1.用户与用户组
     在介绍文件属性之前,这里先介绍一下有关Linux系统中一个重要的概念----即“用户和用户组”。这里以“家庭”这个概念来进行讲解,假设有一家人,家里有三兄弟,分别是王大毛、王二毛与王三毛,这个家庭登记在王大毛名下。这样“王大毛家” 就是所谓的“用户组”,至于三兄弟就是分别为三个“用户”,而这三个用户是在同一个用户组里面的。而三个用户虽然在同一用户组内,但是我们可以设定“权限”,好让某些使用者个人的信息不被群组的所有人查询,以保有个人“私人的空间”。而设定用户组共享,则可让大家共同分享。那么又有个人叫做张小猪,他是张小猪家的人,与王家没有关系。这个时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进入王家.不过,如果张小猪透过关系认识了三毛,并且跟王三毛成为好朋友,那么张小猪就可以透过三毛进入王家。那个张小猪就是所谓的“其它人,Others”。因此,我们就可以知道,在Linux里任何一个文件都具有“User, Group及Others”三个权限。
     在Linux系统中,默认情况下,所有系统账号与一般身份用户,以及root的相关信息,都记录在/etc/passwd文件内。密码记录在/etc/shadow文件中。Linux所有的用户组名称都记录在/etc/group内。
    2.文件属性
     下面通过一个范例来解释一下文件属性。

                    连接数                文件所属用户组               文件最近修改时间
  -rwxrwx---    1         root          root                 293               Oct 19 21:24        test
    文件属性        文件拥有者                           文件大小                                    文件名

        a.第一列代表这个文件的属性
       -rwxrwx--- 
       第一个属性表示这个文件是“目录,文件或连接文件等”:
       [d],则是目录   [-],则是文件   [l],则是连接文件   [b],则表示为设备文件中可供存储的接口设备 
       [c],则表示为设备文件中的串行端口设备,例如键盘、鼠标。
       接下来的属性中,3个为一组,且均为“rwx”3个参数的组合。其中,[r]代表可读、[w]代表可写、[x]代表可执行。
      第一组为“拥有者的权限”; 第二组为“同用户组的权限”; 第三组为“其他非本用户组的权限”
      下面就举例进行说明:
         [-][rwx][r-x][r--] 
          1  234  567  890 
        1 为: 代表这个文件名为目录或文件(上面为文件)
        234为:拥有者的权限(上面为可读、可写、可执行)
        567为:同组用户权限(上面为可读可执行)
        890为:其它用户权限(上面为仅可读)
    b.第二列表示连接占用的节点 
       如果是目录,则表示该目录下还有多少目录有关。
       如果是文件,这个放在后面介绍。
    c.第三列表示这个文件(或目录)的“拥有者” 
    d.第四列表示拥有者的用户组
        这时用户组的权限就要配合上面所说到的用户组权限,决定该用户组的权限。
    e.第五列为这个文件的大小
    f.第六列为这个文件的创建日期或者是最近的修改日期
      分别为月份、日期及时间
    g.第七列为这个文件的文件名
      如果文件名前有“.”则表示这个文件为“隐藏文件”
二、目录属性的意义
      若为下面的样式时,请问非root的其它人是否可以进入该目录呢?
      drwxr--r--    2 root     root         4096 Feb 10 00:44 .ssh
  答案是非root这个账号的其它用户均不可进入.ssh 这个目录。因为x与目录的关系相当的重要,如果您在该目录下不能执行任何指令的话,也就无法进入了,因此,请特别留意的是,如果您想要开放某个目录让一些人进来的话,请记得将该目录的x属性给开放。  
     下面就说明一下r,w,x权限针对目录各自的意义:
     r(read contents in directory):表示具有读取目录结构清单的权限,所以当您拥有读取目录的权限时,就可以利用ls命令将该目录的内容列出来。
     w(modify contents of directory):表示拥有更改该目录结构清单的权限。这里说明一下,如系统中账号guo,那么在/home/guo这个目录内,无论是谁(包括root)建立的文件,无论该文件属于谁,无论该文件的属性是什么,guo这个用户都“有权力将该文件删除”。
     x(access directory):与能否进入该目录有关。
    范例:
     [root@redflag ~]# cd /tmp
     [root@redflag tmp]# mkdir testing
     [root@redflag tmp]# chmod 744 testing    #目录的权限是744,且所属用户组与用户均是root
     [root@redflag tmp]# touch testing/testing
     [root@redflag tmp]# chmod 600 testing/testing
     [root@redflag tmp]# su guo
     [guo@redflag tmp]$ ls -l testing
      total 0
      ?--------- ? ? ? ?  ?  testing
      #可查看里面的信息,因为guo具有r的权限,不过,毕竟权限不够,很多数据是问号。
      [guo@redflag tmp]$ cd testing
      bash: cd: testing/: Permission denied
      [guo@redflag tmp]$ exit
      [root@redflag tmp]# chown guo testing   #将目录拥有者设置为guo
      [root@redflag tmp]# su guo
      [guo@redflag tmp]$ cd testing
      [guo@redflag tmp]$ ls -l
      -rw------- 1 root root 0 Jul 14 01:13 testing
      [guo@redflag tmp]$ rm testing
      rm: remove write-protected regular empty file 'testing'? y    #说明了对于目录而言w的权限的重要性
三、更改文件权限
     1.更改所属用户组,chgrp
       改变一个文件的用户组也真是很简单的,直接以chgrp来改变即可。不过,要改变成为的用户组名称必须要在/etc/group里面存在的名字才行,否则就会显示错误。
       [root@redflag ~]# chgrp [-R] 用户组名 dirname/filename...
        参数:
        -R:可连同子目录下的所有文件、目录都更新成这个用户组。
        [root@redflag ~]# chgrp users intsall.log
     2.更改文件拥有者,chown
      chown这个指令也要注意的是,用户必须是已经存在系统中的,也就是在/etc/passwd这个文件中有。chown的用途还还可以直接修改用户组的名称。
       [root@redflag ~]# chown [-R] 账号名称 文件或目录
       [root@redflag ~]# chown [-R] 账号名称:用户组名称 文件或目录
       参数:
       -R:可连同子目录下的所有文件、目录都更新成这个用户组与用户。
     3.更改9个属性,chmod
       使用chmod命令改变文件的属性,属性的设置方法有两种,分别可以使用数字或符号。
        * 数字类型改变文件权限
         Linx文件的基本属性有9个,分别是owner/group/others组别的read/write/execue属性,九个属性是三个三个一组的。其中,我们可以使用数字来代表各个属性,各属性的对照表: r:4  w:2  x:1
    由于同一组的数字是相加的。例如当属性为[ -rwxrwx--- ]则是:
         owner  = rwx  = 4+2+1 = 7 
      group  = rwx  = 4+2+1 = 7 
      others = ---  = 0+0+0 = 0
    [root@redflag ~]# chmod [-R] xyz 文件或目录
      参数: xyz:为同三组rwx属性数值的相加
             -R:进行递归的持续更改
       * 符号类型改变文件权限
         基本上就九个属性分别是user,group,others。那么就可以由u,g,o来代表三组的属性。a则代表all,即全部的3组。那么读写的属性就可以写成了r,w,x。也就是可以使用下面的方式查看:       
     chmod         u    
   g    
   o    
   a    
    +(加入)       
   -(除去)      
       =(设置)      
   r    
  w    
    x    
    文件或目录    

 
相关阅读 更多 +
排行榜 更多 +
坦克冒险大师安卓版

坦克冒险大师安卓版

策略塔防 下载
自动防御

自动防御

策略塔防 下载
枪战大乱斗2

枪战大乱斗2

飞行射击 下载