文件系统和文件权限

文件系统和文件权限

文件系统是一种由文件或文件夹的集合组织的结构。它确定对数据的控制,即如何存储和检索数据。

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-ugoa表示,其中u表示用户,g表示组,o表示其他,以及a对所有类。
  • operator(+-)用于添加或删除权限。
  • permission由指示符rwx表示,以分别允许访问以读取,修改或运行脚本。

让我们更改下面给出的aa.sh文件的权限:

1. 为所有类添加执行的权限

chmod o+w,o+x aa.sh

2.删除其他类的写入和执行权限

chmod o-w,o-x aa.sh


因此,如果需要,都可以更改类的任何权限。