Linux文件和目录权限解释

linux是一个多用户操作系统,因此多个用户可以同时使用linux与同一台计算机进行交互。作为一个多用户操作系统,linux需要确保不同用户拥有的文件的安全性和隐私。

为了实现这一点,linux拥有一个复杂的系统来处理文件和目录权限。通过这种方式,linux用户可以控制不同用户对文件的访问权限以及在使用计算机时用户可以执行的操作。

作为linux用户,了解linux如何处理文件和目录权限以及如何使用不同的可用权限来保护文件并保证计算机功能的正常运行至关重要。为了理解linux如何管理文件和目录权限,让我们首先看一下linux操作系统中的不同用户类别。

linux中的用户类别

第一类用户是文件或目录的所有者。linux中的每个文件或目录都有一个所有者。通常情况下,文件的所有者被授予更多的权限。文件的所有者通常用字母u表示。

在linux中,多个用户可以被归为一组,并以组的形式被赋予对文件的权限。这些用户被称为组所有者,表示为字母g

例如,如果您有一个包含书籍推荐的文件,并且您想要给予几个用户相似的文件访问权限,一种简单的方法是将这些用户放入一个组中,并将权限授予整个组。

另一类用户称为其他用户,表示为字母o。这些用户既不是文件的所有者,也不是具有对文件访问权限的组的成员。其他用户表示系统中的其他所有用户。

计算机中的所有用户,即文件的所有者、组中的用户和其他用户,都可以使用字母a来指定。

在ubuntu linux中创建和添加新用户

让我们看看如何在ubuntu linux中创建和添加新用户。请在本教程中创建一个新用户。

1. 打开设置,在左侧菜单栏中点击用户,然后点击解锁并在提示时提供密码。您需要点击解锁以便添加新用户。默认情况下,此功能是被锁定的。

2. 解锁后,您将看到一个添加用户选项,点击它以添加新用户

3. 要创建一个新用户,请提供其全名和用户名,选择立即设置密码,并设置其密码。此外,确保账户类型设置为管理员,然后点击添加以添加用户。

4. 您应该看到刚刚创建的新用户帐户如下所示。

linux文件和目录权限

权限指的是规定文件和目录访问以及不同用户可以执行的操作的规则。linux有三个主要的权限类别:

  1. 读取(r)- 允许用户查看文件的内容并列出目录的内容
  2. 写入(w)– 允许用户修改文件的内容。对于目录,写入权限允许用户修改目录的内容,例如创建、删除、重命名或移动目录中的文件和子目录。然而,仅当用户也具有执行权限时,目录的写入权限才起作用。
  3. 执行(x)- 执行权限意味着文件可以被视为可执行的程序。对于目录,执行权限允许用户进入或“cd”到目录中。

在linux中,读取、写入和执行权限分配给三个可用的用户类别。

您还可以阅读有关如何在linux中删除文件和目录的信息

linux中的长列表

要查看linux目录中文件的内容,通常我们运行ls命令。然而,这只列出了可用的文件和目录,并没有提供任何其他信息。

要查看有关内容的更多信息,您需要使用长列表格式。为此,请使用带有-l标志的ls命令。这将为您提供文件权限、文件所有者和文件的组所有者,如下所示:

在ubuntu中,默认情况下,如果没有创建组,则组名与文件的所有者相同。

要创建一个组,我们使用addgroup命令。要添加一个名为editors的组,请执行以下命令,并在提示时提供密码

sudo addgroup editors

sudo允许我们以root用户身份运行命令,root用户是具有执行影响计算机所有用户的更改的特权的超级用户。

要将用户添加到组中,我们使用以下语法:

adduser  

因此,要将belmont和madici都添加到editors组中,我们执行

sudo adduser belmont editors
sudo adduser madici editors

要查看用户属于的组,请执行:

groups 

上述命令的结果如下所示:

现在让我们看看文件属性,它告诉我们文件类型和文件上的权限。

linux中的文件属性

在linux中,文件属性总共由十个字符组成。第一个字符表示文件的类型。一些表示不同类型文件的常见第一个字符包括:

  • d表示目录
  • 表示常规文件,如文本文件
  • c 表示字符特殊文件
  • l表示符号链接
  • b 表示块特殊文件

剩余的九个字符用于显示所有者、组所有者和其他用户的权限。这九个字符被分为三组。第一组表示所有者的权限,第二组表示组所有者的权限,最后三个表示其他用户的权限,即计算机中的每个其他用户。

每个类别的权限都以读、写和执行权限为开始。读权限用字母r表示,写权限用字母w表示,执行权限用字母x表示。

当用户没有特定权限时,使用符号。例如,对于组所有者,rw-表示他们有读和写权限,但在该目录(d)上没有执行权限。

使用符号表示法更改文件权限

要更改文件或目录的权限,我们使用chmod命令并指定要更改权限的用户。

可以是文件的所有者,用字母u表示用户,组所有者用字母g表示,或者其他用户用字母o表示。我们还可以使用字母a来定位所有三个用户类别,这意味着上述所有用户。

接下来,我们指定正在进行的更改。要添加权限,我们使用+(加号)。要删除权限,我们使用(减号)。最后,我们提供要添加的权限,使用r、wx来表示三个可用的权限。

要看到此操作,请使用以下命令创建名为books的目录

mkdir books

进入该目录:

cd books

创建名为readinglist.txt的文件

touch readinglist.txt

通过执行以下命令长列表books目录的内容:

ls -l

输出如下:

我们创建的文件是一个普通文件,由第一个表示,所有者和组所有者有读和写权限,而其他用户只有读权限。要授予其他用户对该文件的写权限,我们将执行以下命令:

chmod o+w readinglist.txt

要查看其他用户的权限是否已更改,请执行

ls -l

输出:

注意,其他用户的文件权限已从r-更改为rw-,这意味着他们现在具有写权限。

要为文件的所有者(用户)添加执行权限,请执行:

chmod u+x readinglist.txt

要从组所有者中删除写权限,请执行:

chmod g-w readinglist.txt

要从所有用户中删除读权限,以便没有人可以查看文件,请执行:

chmod a-r readinglist.txt

要给文件的所有者添加回读取权限,请执行以下操作:

chmod u+r readinglist.txt

要给文件的组所有者添加写入和执行权限,请执行以下操作:

chomod g+wx readinglist.txt

使用八进制表示法更改权限

在linux中,每个可用权限只有两个可能的值。读取权限只能是r,写入权限只能是w,执行权限只能是x

因此,这些权限可以被认为是打开或关闭的,并且可以使用二进制数字来表示,二进制数字只有两个可用值。即打开或真正的1和关闭或假的0。因此,权限如rw–可以使用二进制数字110来表示。

因此,对于任何给定的用户类别,三个二进制数字足以表示其所有权限。例如,所有者、组和其他用户的权限rwxrw-r–可以使用二进制数字111110100来表示。

但是,为了避免编写冗长和容易混淆的二进制数字,更好的选择是使用八进制数字。

八进制数的基数为8,因此只有8个可能的值。每个八进制数对应着三个二进制数字。

因此,权限如rw-可以用二进制表示为110。二进制110的八进制等效值为6,因此可以使用6来表示rw-。八进制数可用于表示所有者、组和其他用户的读取、写入和执行权限,如下所示:

与编写冗长的二进制数字相比,使用八进制数表示权限更好。因此,所有者、组和其他用户的所有权限都使用单个八进制数表示,如上图所示。

使用八进制表示法设置权限的优点是,它允许您一次设置所有用户的权限,而不像在符号表示法中,您一次只能设置一个用户的权限。

然而,使用八进制表示法需要一些时间和练习才能记住每个八进制数代表的内容。也就是说,每当您使用八进制表示法时,请随时参考上面的图表。让我们看几个使用八进制表示法更改权限的示例

要给所有用户(即所有者、组所有者和其他用户)读取、写入和执行readinglist.txt的权限,请执行:

chmod 777 readinglist.txt

要检查权限是否已更改,请执行:

ls -l

输出:

total 0
-rwxrwxrwx 1 madici madici 0 sep  6 05:45 readinglist.txt

注意,现在所有者、组和其他用户都有读取、写入和执行readinglist.txt的权限。

要从组所有者和其他用户中移除写入权限,请执行:

chmod 755 readinglist.txt

要从所有者和其他人中删除执行权限,请执行以下操作:

chmod 654 readinglist.txt

linux中的特殊权限

linux除了标准的读、写和执行权限之外,还有三个可以应用于文件和目录的特殊权限。这些权限提供了高级功能,用于访问控制,并允许权限较低的用户以更高的权限执行文件和命令,就像文件的所有者或组所有者一样。

特殊权限包括:

  • 设置用户id(suid)- suid权限允许用户以文件或程序的所有者的权限执行文件或程序,而不是执行它的用户的权限。当标准用户需要执行需要提升权限的任务时,这非常有用。
  • 设置组id(sgid)- sgid权限允许用户以文件的组所有者的权限执行文件,而不是其实际组的权限。
  • 粘性位-粘性位通常设置在目录上,以确保目录中的文件只能由目录的实际所有者、该特定文件的所有者或root用户删除。

这三个特殊权限可以与标准权限一起使用:读、写和执行。

结论

权限是linux中的一个重要概念,即使您的计算机没有多个用户。了解权限对于确保linux系统中存储的数据及其功能的控制、安全性和隐私非常重要。因此,考虑通过练习本文中关于权限的所学内容来熟悉权限。

您还可以了解如何在windows上使用linux命令。

类似文章