介绍
Linux是一个基于文件的所有权和权限的UNIX观念提供担保的,在文件系统级别多用户操作系统。 如果你计划提高你的Linux技能,重要的是要有一个体面的理解如何所有权和权限工作。 在处理文件所有权和权限时,有许多复杂的问题,但我们将尽力将概念提炼为对基本理解如何工作所必需的细节。
在本教程中,我们将介绍如何查看和了解Linux所有权和权限。 如果您正在寻找如何修改权限的教程,看看这个指南: Linux权限基础及如何在VPS使用的umask
先决条件
确保您了解本系列前面的教程中涵盖的概念:
按照本教程,访问Linux服务器不是绝对必要的,但有一个可以使用将让你获得一些第一手的经验。 如果你想设置一个, 看看这个链接寻求帮助。
关于用户
如引言中所述,Linux是一个多用户系统。 我们必须明白Linux 用户和组的基本知识,才可以谈的所有权和权限,因为它们是所有权和权限,适用于实体。 让我们开始了解用户的基本知识。
在Linux中,有两种类型的用户: 系统用户和普通用户 。 传统上,系统用户用于在系统上运行非交互或后台进程,而常规用户用于以交互方式登录和运行进程。 当您首次登录Linux系统时,您可能会注意到,它开始于许多系统用户运行操作系统所依赖的服务 - 这是完全正常的。
一个简单的方法来查看所有系统上的用户是看的内容/etc/passwd
文件。 在这个文件中的每一行包含关于单个用户的信息,首先是它的用户名 (前第一个名字:
)。 打印passwd
使用此命令文件:
cat /etc/passwd
超级用户
除了两种用户类型,有超级用户或超级用户,拥有覆盖任何文件所有权和权限限制的能力。 在实践中,这意味着超级用户有权访问自己的服务器上的任何内容。 此用户用于进行系统范围的更改,并且必须保持安全。
还可以配置具有假设“超级用户权限”的能力的其他用户帐户。 事实上,产生具有正常用户sudo
为系统管理任务的权限被认为是最佳实践。
关于组
组是零个或多个用户的集合。 用户属于默认组,也可以是服务器上任何其他组的成员。
一个简单的方法来查看所有的组及其成员是在看/etc/group
服务器上的文件。 在本文中,我们不会介绍组管理,但如果您对您的组感兴趣,可以运行此命令:
cat /etc/group
现在你知道用户和组是什么,让我们谈谈文件所有权和权限!
查看所有权和权限
在Linux中,每个文件由单个用户和单个组拥有,并且具有自己的访问权限。 让我们来看看如何查看文件的所有权和权限。
查看文件的权限最常见的方法是使用ls
与长列表选项,如ls -l myfile
。 如果要查看当前目录中所有文件的权限,请运行不带参数的命令,如下所示:
ls -l
提示:如果你是在一个空的主目录,而你还没有创建任何文件来查看是,您可以通过列出的内容,请跟随/etc
:通过运行此命令目录ls -l /etc
下面是一个输出可能看起来像一个示例屏幕截图,每个输出列的标签:
请注意,列出每个文件的模式(包含权限),所有者,组和名称。 除了模式列,这个列表相当容易理解。 为了帮助解释所有这些字母和连字符的意思是,让我们打破模式列到它的组成部分。
了解模式
为了帮助解释所有的分组和字母的意思是,看看这个特写镜头在上面的例子中,第一个文件的方式 :
文件类型
在Linux中,有两个基本类型的文件: 正常和特殊 。 文件类型由文件的模式的第一个字符表示-在本指南中,我们将此作为文件类型字段 。
(普通文件可以通过使用连字符文件被识别-
在其文件类型字段。 正常文件只是可以包含数据的纯文件。 它们被称为普通或常规文件,以将它们与特殊文件区分开。
特殊文件可以由其文件类型字段中具有非连字符(例如字母)的文件标识,并且由操作系统以与正常文件不同的方式处理。 文件类型字段中显示的字符表示特定文件所属的特殊文件的类型。 例如,一个目录,这是最常见的一种特殊的文件,是由所识别d
出现在其文件类型字段(如在前面的屏幕快照)字符。 还有其他几种特殊文件,但它们不是我们在这里学习的关键。
权限类
从图中,我们知道, 模式列指示文件类型,接着是三个黑社会,或者类,权限:用户(所有者),群组等。 类的顺序在所有Linux发行版中都是一致的。
让我们看看哪些用户属于每个权限类:
- 用户 :文件的所有者属于这一类
- 组 :文件的组的成员都属于这一类
- 其他 :不属于用户或组类的一部分的任何用户都属于这一类。
阅读符号权限
接下来要注意的是三个字符或三元组的集合,因为它们以符号形式表示每个类对给定文件具有的权限。
在每个三元组中,读取,写入和执行权限以以下方式表示:
- 阅读 :由一个指示
r
在第一位置 - 写 :由一个指示
w
在第二位置 - 执行 :通过一个指示
x
在第三位置。 在某些特殊情况下,这里可能有不同的字符
连字符( -
在这些人物之一的地方表明相应的权限不适用于相应的类。 例如,如果一个文件的基团三元是r--
,该文件是“只读”,以与该文件相关联的组。
理解读,写,执行
现在你知道如何读取文件的权限,你可能想知道每个权限实际上允许用户做什么。 我们将单独解释每个权限,但请记住,它们通常彼此组合使用,以允许有意义的访问文件和目录。
下面是三种基本权限类型授予用户的访问权限的快速细分。
读
对于普通文件,读取权限允许用户查看文件的内容。
对于目录,读取权限允许用户查看目录中文件的名称。
写
对于正常文件,写权限允许用户修改和删除文件。
对于目录,写权限允许用户删除目录,修改其内容(创建,删除和重命名其中的文件),并修改用户可以读取的文件的内容。
执行
对于普通文件,执行权限允许用户执行文件(用户还必须具有读取权限)。 因此,必须为可执行程序和shell脚本设置执行权限,然后用户才能运行它们。
对于目录,执行权限允许用户访问,或横向,成(即cd
)和访问元数据目录(即在列出的信息文件ls -l
)。
模式(和权限)
现在知道如何读取文件的模式,并了解每个权限的含义,我们将提供一些常见模式的示例,简要说明,将概念集中在一起。
-
-rw-------
:一个文件只能由其所有者访问 -
-rwxr-xr-x
一个文件,是由系统上的每个用户执行。 一个“世界可执行”文件 -
-rw-rw-rw-
一个文件,是由系统上的每个用户开放的修改。 “世界可写”文件 -
drwxr-xr-x
一个目录,该系统中的每个用户可以读取和访问 -
drwxrwx---
:目录是修改(包括其内容),由它的所有者和组 -
drwxr-x---
:目录是按组访问
正如你可能已经注意到的,文件的所有者通常享有最多的权限,与其他两个类相比。 通常情况下,你会看到, 组和其他类只有所有者的权限(相当于或更少)的一个子集。 这是有道理的,因为文件应该仅对于由于特定原因需要访问它们的用户可访问。
另一个要注意的是,即使许多权限组合是可能的,只有某些在大多数情况下是有意义的。 例如, 写和执行访问几乎总是伴随着读访问,因为它很难修改,无法执行,有些东西你无法读取。
修改所有权和权限
为了保持本教程简单,我们不会在这里介绍如何修改文件所有权和权限。 要了解如何使用chown
, chgrp
和chmod
来完成这些任务,请参阅本指南: Linux权限基础及如何在VPS使用的umask 。
结论
您现在应该很好地了解所有权和权限在Linux中的工作方式。 如果您想了解有关Linux基础知识的更多信息,强烈建议您阅读本系列中的下一个教程: