Linux文件权限与目录配置

Linux文件权限与目录配置

1 使用者与群组

  • 文件拥有者

Linux是多人多任务的系统,能够满足多人同时使用一部主机进行工作。与此同时需要注意的是,每个人的文件具有一定的保密性,我们不想让别人可以查看我们的文件,因此文件拥有者的概念就很重要。通过文件拥有者这个角色可以将文件设置成只有文件拥有者具有查看的权限,其他人就看不了该文件。假设某公司有两个团队,分别是团队A和团队B,团队A中有成员class1、class2、class3,团队B中有成员class4、class5、class6。这两个团队共同担任起公司的业务开发,那么在团队A中,三个成员可以修改开发任务中的部分公共数据,此外,每个成员也有自己的隐私数据,其余成员不能动;与此同时,在团队B中也是同样的情况。每个成员均具有自己的数据,该成员就是自己数据的文件拥有者。

  • 群组概念

群组的其中一个关键功能就是在团队开发项目的时候会被应用到。通过上述例子就可以看出团队A与团队B就相当于两个不同的群组。

  • 其他人的概念

其他人是一个相对概念,团队A中的成员对于团队B中的所有成员来说就是其他人,同理团队B中的成员相对于团队A中的所有成员来说也是其他人。

2 Linux文件权限概念

2.1 Linux文件属性

通过ls -al列出文件夹中的所有文件的文件属性,如下图所示,命令执行后,列出了所有文件的属性信息,这些信息时什么意思呢?下面一一仔细进行分析。
Linux文件权限与目录配置

  • 第一栏代表文件的类型与权限,比如-rw-rw-r--,共分为四个部分,第一个部分用第一个字符表示,是文件类型,总共有下面几种类型

    • d字符表示为目录
    • -字符表示为文件
    • l字符表示为连接档,相当于Windows中的快捷方式
    • b字符表示为装置文件里面的可供存储的接口设备
    • c字符表示为装置文件里面的串行端口设备,如键盘、鼠标
  • 第一栏的后三个部分是权限,每三个字符一组,分别对应于文件拥有者的权限群组中其他账号的权限其他人的权限;并且每一组分别有四种权限r(可读),w(可写),x(可执行),-(没有权限)组成。以-rw-rw-r--举例来说

    • -,表示该类型是一个文件
    • rw-,第一组权限,表明文件拥有者的权限是可读、可写、不能执行
    • rw-,第二组权限,表明群组中的其他成员的权限是可读、可写、不能执行
    • r--,第三组权限,表明该群组之外的其他成员的权限是仅仅可读
  • 第二栏表示有多少个档名连接到此节点

  • 第三栏表示为这个文件或者目录的拥有者账号

  • 第四栏表示为这个文件或者目录的所属群组

  • 第五栏表示为这个文件的容量,默认大小单位是字节(Bytes)

  • 第六栏表示为这个文件建档时间或者最近的修改时间

  • 第七个就是文件的文件名

2.2 如何改变文件属性及权限

关于文件的属性预计权限的设置,有三个实现命令,分别是chgrpchownchmod ,接下来对这三个命令进行介绍。

  • chgrp(改变群组)

如下面所示,通过chgrp linuxruxue(群组名) test(文件名)将文件test的群组更改了
Linux文件权限与目录配置

  • chown(改变文件拥有者)

如下面所示,通过chown linuxruxue(文件拥有者名) test(文件名)将文件test的文件拥有者更改了
Linux文件权限与目录配置

  • chmod(改变权限)

    • 数字类型改变文件权限

    如下图所示,通过chmod 777(要改成的权限) test1(文件名)将文件test1的权限由rwxrwxr-x改为rwxrwxrwx
    Linux文件权限与目录配置
    在这里的777是什么意思呢?三个7分别对应三个不同身份文件拥有者群组其他成员其他人的权限,具体的数字是怎么构成的呢?

    rwx-分别对应数字4210,比如图中在改变权限之前是rwxrwxr-x,则用数字表示是775,这三个数字对应的构成是:

    文件拥有者:74+2+1

    群组其他成员:74+2+1

    其他人:54+1

    • 符号类型改变文件权限

    这种方式通过符号类型改变文件权限,具体方式是怎样的呢?首先列出一个表格,如下

    改变权限命令 身份名 操作方法 权限 文件名
    chmod u、g、o、a +(加入)、-(减去)、=(等于) r、w、x 文件或者目录

    那么具体可以怎么操作改变文件权限呢?举个例子,如下图所示
    Linux文件权限与目录配置
    如图所示可以看出,通过chmod ugo=rwx test1可以设置test1文件的权限是rwxrwxrwxchmod u=rx,g=rw,o=wx test1可以设置test1文件的权限是r-xrw--wx

    此外还可以使用符号a对三个身份的某一个权限设置,如chmod a-w test1可以设置三个身份的w(可写)的权限都取消,如下图所示,将r-xrw--wx改为r-xr----x
    Linux文件权限与目录配置

2.3 目录与文件权限的意义

  • 权限对目录的意义
    • r(可读权限) : 表示具有目录结构列表的权限,比如说当利用ls -al命令可以查看出目录下的内容
    • w(可写权限) :表示的功能有如下几个
      • 建立新的文件与目录
      • 删除已经存在的文件与目录
      • 将已经存在的文件与目录更名
      • 搬移该目录内的文件与目录位置
    • x(可执行权限) : 目录的可执行权限不是可以执行的意思,因为目录本来就不是所谓的可执行文件,所以这里目录具有可执行权限指的是用户能够进入该目录成为工作目录的意思
  • 权限对文件的意义
    • r(可读权限) : 可读取文件的实际内容,如读取问文本文件的文字内容
    • w(可写权限) : 可以编辑、新增或修改文件的内容(但不包含删除文件)
    • x(可执行权限) : 该文件具有真正意义上具有可以执行的概念,能够被系统执行

2.4 Linux文件种类与扩展名

  • 文件种类

    • 正规文件:

      就是在ls -al test命令时候,出现-rwxrwxr-x的第一个字符-表示的意思,文件具有下面几种不同种类

      • 纯文本
      • 二进制文件
      • 数据格式文件
    • 目录:就是ls -al test1时候出现的drwxrwxr-x的第一个字符d表示的意思

    • 连接档:相当于windows中的快捷方式的意思,是lrwxrwxrwx中的第一个字符l表示的意思

    • 设备与装置文件

      • 区块设备档
      • 字符设备文件
    • 资料接口文件(Sockets):这种文件通常被应用网络上的数据承接

    • 数据输送文件(FIFO,pipe):主要用来多个程序之间处理一个文件的问题

  • Linux文件扩展名

    • *.sh:脚本或批处理文件
    • *Z,*.tar,*.tar.gz,*.zip,*.tgz,经过打包的压缩文件

3 Linux目录配置

3.1 目录树

在Linux下面,所有的文件或者目录均是从根目录开始的,然后再往下分支,类似于树枝状,因此这种目录配置的方式称为目录树。目录树具有以下特征

  • 目录树的起点为根目录/
  • 每一个目录不止能使用本地端的partition的文件系统,也可以使用网络上的filesystem
  • 每个文件在此目录树上的文件名(包括完整路径)均是独一无二的

如下图所示是执行ls -l命令后,根目录/下 的文件和目录情况
Linux文件权限与目录配置

3.2 绝对路径和相对路径

  • 绝对路径:这种路径方式是由根目录/开始往下写起的详细路径信息,如/studyLinux/test
  • 相对路径:这种路径方式是其中一个路径相对于另一个路径的路径信息,如../../tmp,其中..表示的意思是上一层目录

如下图所示是利用cd 相对路径(或者绝对路径)执行得到的工作目录
Linux文件权限与目录配置