Linux文件与目录管理

文件管理

  1. 文件的作用

    • 在Linux系统中,它将所有的一切一切都以文件方式存放在系统之中(目录也是一种特殊的文件)。
    • 因此对系统的管理,说到底即是对文件的管理。
  2. Linux文件的命名规则

    • 文件名最大为255个字符。
    • 文件名中不能包括Linux特殊字符如“\”、”/”等(如果在文件中使用这些特殊符号可通过转义符”\”来将其转义)。
    • 以“.”开头的文件为隐藏文件。
  3. Linux中文件相关信息

    • 当用户使用指令”ls -l”以长列表方式查看文件的详细信息,就会显示文件的相关信息:
      File
  4. Linux文件类型

    • 当用户查看文件详细信息时,第一个字符就是这个文件的类型:
      -:一般文件
      d:目录文件
      b:块设备文件
      c:字符设备文件
      l:链接文件
      p:人工管道
    • 检查文件类型的其它方法
      file <文件名>
      stat <文件名>
  5. 文件权限

    • 对于每一个文件,Linux都提供了一套文件权限系统。
    • 在文件权限系统中,将可以操作文件的用户都分为三类:
      文件的所有者(u)
      文件的所属组(g)
      其它用户(o)
    • 对于第一类用户,权限系统又分别给他们提供三种权限(rwx)。
    • 针对文件而言,这三种权限含义为:
      读(r):用户是否有权读取文件内容
      写(w):用户是否有权对文件进行更改
      执行(x):用户是否有权执行文件
    • 用户可使用chmod命令来改变文件的权限。
      语法:chmod <权限> <文件名>
    • 改变文件权限的方法大致可分为三种:
      • 通过”+”、”-“来为某类用户添加或去掉相关权限
        如:chmod u+x file  //为文件所有者添加可执行权限
      • 通过”=”为某用类户赋于权限
        如:chmod g=rw file //为文件所属的组赋于读、写权限
      • 通过三个数字来为三类用户分别赋于权限
        如:chmod 777 file  //文件对所有人开放
    • chmod后用三位数字开表示用户权限:
      • 第一位数字代表文件所有者
      • 第二位数字代表文件所属组
      • 第三位数字代表其它用户
    • 每一个数字都采用加和的方式得出
      • 4( 读)
      • 2 (写)
      • 1 (执行)
        如:chmod 755 file    //为文件赋于rwxr-xr-x的权限
        分析:u(7=4+2+1 rwx)g(5=4+1 rx)o(5=4+1 rx)
    • 只有文件拥有者和root用户才可以改变文件权限。
    • 每个文件都有一个所有者,只有root用户才可以通过使用”chown”命令来改变文件的所有者
      命令: chown <用户名> <文件名>
    • 每个文件都属于且只能属于一个指定的组,文件的所有者与root用户,可以使用”chgrp”命令来改变文件所属组。
      注:当使用文件所有者来改变属组时,那么被改变到的新组中,必须包含此用户。
      命令:chgrp <组名> <文件名>
      备:root用户可使用  ”chown <用户名>:<组名> <文件名>“   来同时改变文件的所有者和所属组
  6. 文件访问控制列表ACL

    • ACL可为某个文件或目录单独设置具体的某用户或组的权限。
    • getfacl <文件名>
      获取文件的ACL信息
    • setfacl  设置文件的ACL
      • -m 修改文件的ACL
      • -x  取消用户或组对文件的权限
      • 命令语法:
        setfacl -m u:<用户名>:<权限> <文件名>              //设置某用户的访问权限
        setfacl -m g:<组名>:<权限> <文件名>                  //设置某个组的访问权限
        setfacl -x u:<用户名> <文件名>                              //取消某用户的访问权限
        setfacl -x g:<组名> <文件名>                                  //取消某个组的访问权限
        setfacl -R -m u:<用户名>:<权限> <目录名>       //为某目录设置某用户的权限且递归(目录及文件)下去
        setfacl -R -m d:u:<用户名>:<权限> <目录名>   //为某目录设置某用户的默认权限且递归(仅目录)下去
        setfacl -R -m g:<组名>:<权限> <目录名>           //为某目录设置某个组的权限且递归(目录及文件)下去
        setfacl -R -m d:g:<组名>:<权限> <目录名>       //为某目录设置某个组的默认权限且递归(仅目录)下去
        setfacl -m d:m:<权限>                                             //为某目录设置有效的权限掩码
        setfacl -R -b <目录名>                                             //清除某目录下的所有扩展ACL权限
    • 小实验:管理员在”/share/”目录下建立了一个”notice.txt”文件,在不更改默认权限与属主和属组的情况下,让用户lucy对其具有可写权。
      默认情况:

      powerACL1
      默认ACL、更改ACL:
      powerACL2
      当更改文件ACL,权限后面的”.”变为”+”;
      测试:
      powerACL3
  7. 链接文件

    • 软链接(符号链接)
      • 软链接就像为文件创建了一个新的指针,当对软链接进行操作时,系统会找到原文件并对原文件进行操作(类似于windows中的快捷方式)。
      • 命令语法:ln -s <原文件> <新建链接文件>
    • 硬链接
      • 硬链接文件完全等同于原文件,原文件名和链接文件都指向相同的物理地址
      • 命令语法:ln <原文件> <新建链接文件>
      • 硬链接描述
        • 不可跨文件系统创建硬链接,也不可为目录创建硬链接
        • 文件在磁盘中的数据是唯一的,这样就可以节省硬盘空间
        • 由于只有当删除文件的最后一个节点时,文件才能真正从文件磁盘空间中清除,因此可以防止不必要的误删除

发表评论

error: Content is protected !!