文件系统和文件权限
文件系统是一种由文件或文件夹的集合组织的结构。它确定对数据的控制,即如何存储和检索数据。
1. 文件系统
Linux文件系统是一个由许多目录组成的树状结构。这些目录只是包含其他文件列表的文件。Linux在文件和目录之间没有区别。Linux文件系统中的所有文件都称为目录,这些文件的分类如下:
- 包含数据,文本,图像,程序指令的普通文件。
- 用于访问硬件设备的特殊文件。
- 包含普通文件和特殊文件的目录。
下面让我们看一下Linux文件系统。使用ls -l
命令列出所有文件和目录。
上面图中有七列,其定义如下:
- 第一列代表文件类型和文件权限。每个文件行均以文件类型开头,然后指定与文件关联的访问权限。如以下类型的文件,带有其特定字符:
- 常规文件(
-
) - 目录(
d
) - 链接(
l
) - 特殊档案(
c
) - 套接(
s
) - 命名管道(
p
) - 块设备(
b
)
- 常规文件(
- 第二列代表存储块的数量。
- 第三列代表文件的所有者或具有管理权限的超级用户。
- 第四列代表所有者/超级用户组。
- 第五列代表文件大小。
- 第六列表示创建或最后修改文件的日期和时间。
- 最后一列代表文件或目录的名称。
2. 文件权限
尽管具有最佳安全性,基于Linux的操作系统仍需要文件权限来保护其文件系统,因为当用户向文件和目录分配不当权限时,会发生基于文件权限的问题。这些问题可能导致恶意或意外篡改文件系统。因此,Linux通过以下两个授权属性来保护其文件系统:
2.1. 权限
与文件相关的三种类型的权限如下:
- 阅读(
r
)权限,可以通过此权限可以查看文件的内容。 - 写入(
w
)权限,通过此权限可以修改文件内容。 - 执行(
x
)权限,通过此权限可以运行编程文件或脚本。
注意:在调用权限的情况下会提供破折号(
-
)。
2.2. 所有权
Linux用户分为以下三种:
- 所有者是创建文件的超级用户。他可以访问与文件关联的所有权限,包括读取,修改和运行文件。
- 用户组称为一组用户或多用户。超级用户创建用户组,组中的每个成员都具有与文件关联的相同访问权限。
- 其他用户(即第三方用户)是不属于超级用户/组成员的其他任何人。他们使用与超级用户/组成员创建或拥有的任何文件或目录关联的权限。
让我们通过一个例子来理解这个概念。
以第一列为例,它有十个槽位。
- 第一个插位(
-
)表示由aa.sh
命名的文件。 - 接下来的三个插位(
rw-
)指定分配的所有者使用的权限。此权限表示可以读取和写入。在这里,执行权限被拒绝。 - 接下来的三个插位(
r--
)指定拥有该目录的组成员使用的权限。此权限表示可以读取权限,但不包括执行权限。 - 接下来的三个插位(
r--
)指定第三方用户使用的权限。此权限表示可以读取权限。在这里,读写权限均被拒绝。
3. 更改权限
可以使用chmod
命令更改每个类(用户/组/其他)的文件权限。删除或添加任何类的任何权限的基本形式是:
chmod [class][operator][permission] file_name chmod [ugoa][+or-][rwx] file_name
其中,
class
由-u
,g
,o
和a
表示,其中u
表示用户,g
表示组,o
表示其他,以及a
对所有类。operator
(+
或-
)用于添加或删除权限。permission
由指示符r
,w
,x
表示,以分别允许访问以读取,修改或运行脚本。
让我们更改下面给出的aa.sh
文件的权限:
1. 为所有类添加执行的权限
chmod o+w,o+x aa.sh
2.删除其他类的写入和执行权限
chmod o-w,o-x aa.sh
因此,如果需要,都可以更改类的任何权限。
扫描二维码
程序员编程王