帮助文档>117数据 > Linux系统下文件是怎么分类的?

Linux系统下文件是怎么分类的?

发布时间:2024-07-08 17:58

【一】文件类型

在 Linux 系统中,文件是用户频繁访问的重要资源,学习 Linux 的人常说“Linux 系统中的一切皆文件”。那么,在 Linux 系统中,文件是如何分类的呢?在 Linux 系统中,文件主要分为两大类:普通文件和特殊文件。普通文件主要包括可执行文件、文本文件、网页文件等。特殊文件则包括目录文件、链接文件、块设备文件、字符设备文件、管道文件和安全套接字文件。可以通过 `ls` 命令查看指定目录下的文件信息,其中第一列的信息表示文件类型,如图所示:

文件类型的含义如表所示:

首字符 文件类型 说明
- 普通文件 文本文件、网页文件、可执行文件
d 目录文件  文件夹或目录
l 链接文件 软链接,相当于 Windows 的快捷方式
 b 块设备文件 指硬盘或光驱
c 字符设备文件 虚拟终端
p 管道文件 实现进程间通信的文件
s 套接字文件 用于网络通信的介质文件

【二】文件权限

在 Linux 系统中,通过设置文件权限来限制用户对系统资源的访问,文件的权限决定了用户是否可以操作该文件,从而提高了系统的安全性。Linux 对文件权限的划分主要有三种,即读、写、执行。由于文件的权限与用户相关,所以在 Linux 系统中,文件权限按照属主、属组和其他用户进行控制。文件的读、写权限比较容易理解,这里重点介绍执行权限。对于文件来说,执行权限是最高权限。为用户或用户组设置权限时,是否赋予执行权限需要慎重考虑,否则会对系统安全造成严重影响。如果设置的对象是目录,给目录赋予读权限仅允许用户查看目录结构,但无法正常进入目录,必须赋予执行权限,才能正常使用该目录。

通常,一个用户可以访问自己创建的目录或文件,也可以访问同组用户共享的文件或目录,但不能访问非同组用户的文件。超级管理员 root 用户则没有这些限制,因此在使用 root 用户操作各种资源时需要特别小心。

【三】查看文件权限

查看某个文件的权限,可以通过 `ls` 命令显示文件列表,在列表中有详细的文件权限信息。使用 root 用户登录,在 root 用户的主目录显示文件列表,如图所示:

第一列显示的是文件类型,第二至第十列显示的是文件权限。文件列表的每一行的前十个字符显示的是文件类型和文件权限。如何正确解读文件权限,如表所示:

列值 内容 说明
1 - 普通文件
第2~4列 rw- 对 root 用户可读、可写、不可执行
第5~7列 --- 对 root 组不可读、不可写、不可执行
第8~10列 --- 对其他用户不可读、不可写、不可执行

【四】操作文件权限

由于权限既可以限制用户,也可以限制文件,因此修改文件的访问权限时,要么修改用户的权限,要么修改文件的属性。与此相关的命令主要有三个,分别是 `chmod` 命令,用于设置文件的访问权限;`chown` 命令,用于更改文件拥有者;`chgrp` 命令,用于更改文件所属组。

在该语法中,选项参数有四个取值,如表所示:

选项值 说明
-c 若该文件权限确实已经更改,则显示其更改动作
-f 若该文件权限无法被更改,则不显示错误信息
-v 显示权限变更的详细信息
-R 对当前目录下的所有文件与子目录进行相同的权限变更

在该语法中,模式参数主要有三类,分别是用户类型符号、操作符号和权限符号,其取值说明如以下表格所示:

用户类型符号取值说明:

用户类型符号 说明
u User,文件所有者
g Group,文件所有者所在组
o Others,所有其他用户
a All,所有用户,相当于 ugo

操作符符号取值说明:

操作符 说明
+ 为指定的用户类型增加权限
- 去除指定用户类型的权限
= 重新设置用户类型的所有权限

权限符号取值说明:

权限符号 说明
r  设置为可读权限
w 设置为可写权限
x 设置为可执行权限
X 如果是目录和文件,或者其他类型的用户有可执行权限时,才将文件权限设置为可执行
s 当文件被执行时,根据指定的用户类型设置文件的 setuid 或者 setgid 权限
t 将粘贴位进行设置是超级用户的权限,并且只有文件的所有者u才有权利使用该位。


使用 `chmod` 命令时,可以通过八进制数来定义权限。文件或目录的权限位由9个权限位组成,每3个位一组,如表所示:

权限数值 权限说明
7 rwx = 读 + 写 + 执行
6 rw- = 读 + 写
5 r-x = 读 + 执行
4 r-- = 只读
3 -wx = 写 + 执行
2 -w- = 只写
1 --x = 只执行
0 --- = 无权限

【例】设置文件权限为所有用户都可读取:

进入root用户的主目录,以root用户主目录下的 `anaconda-ks.cfg` 文件为例,通过参数 `a=r` 设置文件用户权限,使所有用户都能读取该文件。具体操作如图所示,可以看到权限设置前后的变化。

【例】设置多个文件的权限组合:

进入root用户的主目录,设置文件 `mrkj_3` 和 `mrkj_5` 的所有者和同组用户可执行,但其他用户组无法执行。当为多个用户组设置不同权限时,使用逗号分隔。具体操作如图所示:

【例】使用数字设定法设置权限:

进入root用户的主目录,设置文件 `mrkj_5` 的权限为所有人可读、可写、可执行,具体操作如图所示:

本文导读

客户热线:13306992629

客户服务中心