AI智能
改变未来

『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用

[toc]

1、基本权限的介绍

(1)权限位的含义

前面讲解

ls

命令时,我们已经知道长格式显示的第一列就是文件权限的描述,例如:

[root@localhost ~ ] # ls -l install.log-rw-r--r--. 1 root root 24772 1月 14 18:17 install.log

第一列的权限位如果不计算最后的

.

(最后的

.

是在

Red Hat 6

的版本才开始出现的。表示这个文件是受

SELinux

保护的。对权限的设置没有影响。),则共有10位,这10位权限位的含义如下图所示:

1)第1位代表文件类型。

Linux不像Windows使用扩展名表示文件类型,而是使用权限位的第1位表示文件类型。

虽然Linux文件的种类不像Windows中那么多,但是分类也不少,详细情况可以使用

info ls

命令查看。

在这里只讲一些常见的文件类型,如下:

  • -

    :普通文件。

  • d

    :目录文件。Linux中一切皆文件,所以目录也是文件的一种。

  • l

    :软链接文件。

  • b

    :块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件

    /dev/sda1

    就是这种文件。

  • c

    :字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。

  • p

    :管道符文件。这是一种非常少见的特殊设备文件。

  • s

    :套接字文件。这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件。

提示:前三种文件个是最为常见。其他格式文件没事不要碰。

2)第2~4位代表文件所有者的权限。

  • r

    :代表

    read

    ,是读取权限。

  • w

    :代表

    write

    ,是写权限。

  • x

    :代表

    execute

    ,是执行权限。

如果有字母,则代表拥有对应的权限;如果是

-

,则代表没有对应的权限。

3)第5~7位代表文件所属组的权限。

同样拥有

r、w、x

权限,同上。

4)第8~10位代表其他人的权限。

同样拥有

r、w、x

权限,同上。

(2)权限的优先级

所有者,所属组,其他用户权限的优先级:

  1. 如果所有者(UID)匹配,用户权限适用。
  2. 否则,如果所属组(GID)匹配,组权限适用。
  3. 如果都不匹配,其它权限适用。

匹配优先级:所有者>所属组>其他用户。

2、权限的基本作用

(1)权限含义的解释

首先,读、写、执行权限对文件和目录的作用是不同的。

1)权限对文件的作用。

  • 读(

    r

    ):对文件有读(

    r

    )权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(

    r

    )权限,就可以对文件执行

    cat

    more

    less

    head

    tail

    等文件查看命令。

  • 写(

    w

    ):对文件有写(

    w

    )权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(

    w

    )权限,就可以对文件执行**

    vim

    echo

    等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限**。

    说明:

    我们之前说过分区,在

    root

    目录下有一个

    abc

    文件,

    abc

    文件会有自己的

    i

    节点,

    i

    节点里边存放的是

    i

    节点号,时间,权限,位置,与之对应的

    block

    块中存放着数据。而

    abc

    文件的文件名是存放在他上级目录的

    block

    块中的。上级目录的

    block

    块中存放着

    abc

    文件的文件名和对应的

    i

    节点号。

    我对

    abc

    文件有写的权限,这个权限是控制

    abc

    文件的

    block

    块的,所以说对文件中数据有写的权限。而

    abc

    文件的文件名是放在上级目录的

    block

    块中的,所以也要有上级目录写的权限,才能有对目录的

    block

    块中的数据有操作权限,因为

    abc

    文件名是

    root

    目录的数据,要拥有

    root

    目录写的权限,最终才能删除

    abc

    文件。

    如下图:

  • 执行(

    x

    ):对文件有执行(

    x

    )权限,代表文件拥有了执行权限,可以运行。在Linux中,只要文件有执行(

    x

    )权限,这个文件就是执行文件了。这个文件到底能不能正确执行,不仅需要执行(

    x

    )权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(

    x

    )权限是最高权限

2)权限对目录的作用。

  • 读(
    r

    ):对目录有读(

    r

    )权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(

    r

    )权限,就可以在目录下执行**

    ls

    命令**,查看目录下的内容了。

  • 写(
    w

    ):对目录有写(

    r

    )权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(

    w

    )权限,就可以在目录下执行**

    touch

    rm

    cp

    mv

    命令**。对目录来说,写(

    w

    )权限是最高权限

  • 执行(
    x

    ):目录是不能运行的,那么对目录拥有执行(

    x

    )权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(

    x

    )权限,就可以对目录执行**

    cd

    命令**,进入目录。(也就是执行权限对于目录来讲没有危险)

(2)目录权限说明

目录的可用权限其实只有以下几个:

  • 0:任何权限都不赋予。
  • 5:基本的目录浏览和进入权限。
  • 7:完全权限。

因为给目录只赋予读的权限是没有意义的,也就是4。因为你要现有执行权限才能进入到目录里,才有查看目录的操作,也就是

4+1

注意:自己做实验的时候不要用

root

用户,用普通用户进行操作。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用