了解Linux权限和chmod使用情况


过去几个月我一直在Linux上学习一门课程,Linux的一个方面总是让我感到困惑的是权限是如何工作的。例如,当我将文件上传到我的网络服务器并收到错误时,我的网络主机告诉我将文件权限更改为755。

我不知道这意味着什么,即使改变了权限修复了问题。我现在已经意识到Linux权限并不是那么复杂,你只需要了解系统。在本文中,我将在高级别上讨论Linux权限,并向您展示如何使用chmod命令更改文件和文件夹的权限。

Linux Permissions&级别

在Linux中,基本上有三种权限通常需要担心:读取,写入和执行。所有这三个都是不言自明的。现在,当这些权限应用于文件时,它们将在级别中应用。

Linux中有三个级别的权限:所有者,组和其他。所有者是拥有文件/文件夹的用户,该组包括文件组中的其他用户,而其他用户只代表非所有者或组中的所有其他用户。

读取,写入和执行表示为符号字符或八进制数字。例如,如果在包含某些文件的目录中执行ls -l,您将看到权限的符号字符表示。

权限写如下:第一位是破折号或字母d。 短划线表示它是一个文件,d表示目录。请注意,如果文件名是链接,则第一位也可以是l。接下来,有三组三位。每组中的第一位用于读取,第二位用于写入,第三位用于执行。前三位用于所有者,后三位用于组,第三位用于其他。这是一个更直观的解释。

如果您看到破折号代替字母,则表示所有者,组或所有其他用户没有那个许可。在上面的示例中,所有者,组和其他所有人都已读取写入和执行权限。

如果查看ls -l命令的输出,您会注意到我的练习文本文件具有以下权限:

-rw-rw-rw-

这意味着每个人都只拥有该文件的读/写权限。这是另一个例子:

drwxr--r--

查看第一位,我们可以看到权限是针对目录的。所有者具有读/写/执行权限,但该组和其他用户仅具有读权限。

八进制数表示

这就是Linux中使用符号显示权限的方式。表示相同权限的第二种方法是使用八进制数。当我们稍后使用chmod命令时,您会看到您可以使用符号或八进制数来更改权限。

那么Linux如何使用八进制数代表读,写和执行?基本上,它只是为每个权限分配一个数字,如下所示。

读取权限由4表示,由2表示并由1执行。您所要做的就是将它们相加以获得八进制权限。例如,让我们以上面的示例为例,其中每个人都拥有所有权限:

-rwxrwxrwx

所有者拥有rwx,因此我们将添加4 + 2 + 1以获得值7。我们为小组做同样的事情,为其他做同样的事情。最后的八进制值是777.让我们看看我们只给出读/写权限的示例:

-rw-rw-rw-

第一个八进制数将是4 + 2,因为我们是添加读写。第二个将与第三个八进制数相同。这里我们的最终八进制值为666。

所以现在让我们尝试另一种方式。假设我们想知道755代表什么权限?好吧,很容易弄清楚你是否按个别数字细分了它。第一个数字是7,我们只能通过添加4 + 2 + 1来获得,这意味着所有者具有读/写/执行权限。五只能通过添加4 + 1来获得,这意味着该组和其他用户具有读取和执行权限。

希望这是一个好的解释如何使用八进制数表示Linux中的权限。它非常简单。

使用chmod修改权限

现在我们已经了解了如何读取权限,让我们来谈谈如何更改它们。用于此目的的最简单实用程序是chmod命令。这是它的工作原理。解释命令的最好方法是通过一个例子。

让我们从上面谈到的权限开始,即:

-rw-rw-rw-

如果我们想要为所有者,组和其他人添加执行权限,我们可以通过两种方式来实现它。我们可以使用符号方法或八进制方法。对于符号方法,我们将执行以下操作,如下所示:

确切的命令是

chmod a+x filename

语法如下:代表所有者的字母(u),组(g),其他(o)或全部(a)后跟+用于添加权限, - 用于取消权限,然后是用于权限的字母(r用于读取,w用于写入,x用于执行)。

在上面的示例中,我添加了执行所有用户的权限。您在上面的屏幕截图中看到的结果是所有者,群组和其他人的x。现在让我们说我只想删除组和其他用户的写入和执行权限。

正如你在这里看到的,我用过到以下命令来完成此任务:

chmod go-wx filename

由于我想更改组和其他的权限,我使用字母g和字母的0即可。我想删除权限,因此我使用 - 符号。最后,我想删除写入和执行权限,因此我使用wx。这是一个方便的符号用小表:

这就是使用符号方法的全部内容。现在让我们谈谈八进制方法,我发现它更容易一些。 Octal非常好,因为您可以一次性添加或删除权限。

如果我们从文件的以下权限开始,让我们看看如何使用八进制方法更改它们:

-rw-rw-rw-

上面,您可以看到我使用了以下命令:

chmod 744 filename

这基本上说所有者获得读/写/执行权限,而组和其他人只获得读权限。如您所见,在一个简单的命令中添加或删除权限很容易。让我们继续说我想再次更改权限。

现在我使用了以下命令,这又是一个非常简单的命令:

chmod 640 filename

这里我们给了所有者读/写权限,只有组读权限而另一组没有权限。您使用零来表示没有权限。非常简单,嗯?

总之,这是一个非常简单的Linux权限概述,它可以比这更复杂,但对于初学者来说,它是一个很好的起点。我将来会发布更多关于更高级权限的文章。如果您有任何疑问,请随时发表评论。享受!

4 2 1 Linux常用命令 权限管理命令 权限管理命令chmod

相关文章:


16.02.2017