Chmod命令和Linux文件权限介绍

因此,您已经找到了喜欢的Linux风格,但是现在您困惑了,因为您没有关于终端命令和Linux文件权限的最模糊的线索?

或者也许您有一个托管在Linux服务器上的网站,您遇到了一些文件权限问题,这些问题只能通过使用命令行魔术来解决。

尽管如此,要学习的最基本的Linux命令之一虽然很小,但是功能强大的命令,称为 chmod 。但是在解释该命令的作用之前,我们必须首先了解Linux如何处理文件安全性。

Linux文件权限的基本知识

Linux操作系统实际上是Unix。类似的系统(了解Linux与Unix),以及类似Unix的系统按以下方式处理文件权限:

每个文件都有一个 owner (所有者),它确定文件的“用户类别"。 "每个文件还具有一个,该组确定文件的“组类"。不是所有者且不属于同一组的任何系统用户都将被确定为“ 其他"

类Unix系统上的所有文件都分配了所有三个类的权限,这些权限确定了所述类可以对给定文件采取哪些操作。

在类Unix系统上可用的三个操作是: read (打开和查看文件内容的功能), write (打开和修改文件的功能)。文件的内容)和执行(作为可执行程序运行文件的能力)。

换句话说,文件的权限确定是否:

  • 所有者可以读取,写入和执行文件。
  • 组可以读取,写入和执行文件。
  • 其他任何人都可以读取,写入和执行
  • Linux文件权限可以两种格式显示。

    第一种格式称为符号符号,这是一个由10个字符组成的字符串:一个字符代表文件类型,然后九个字符代表文件的读(r),写(w)和执行(x)权限(按照所有者,组和其他顺序)。如果不允许,则使用破折号(-)。

    例如:

    -rwxr-xr--

    这表示该文件是具有所有者读取,写入和执行权限的常规文件;读取并执行该组的权限;

    第二种格式称为数字符号,该字符串是一个三位数的字符串,分别代表用户,组和其他权限。每个数字的范围可以从0到7,并且每个数字的值是通过汇总类的权限获得的:

  • 0表示不允许的权限。
  • +1(如果该类可以执行文件)
  • +2,如果该类可以写入文件。
  • +4,如果该类可以读取文件。
  • 换句话说,每个数字值最终为:

  • 0:没有权限
  • 1:执行
  • 2:写入
  • 3:写入并执行
  • 4:读取
  • 5:读取和执行
  • 6:读取和写入
  • 7:读取,写入和执行
  • 因此,上面的示例( -rwxr-xr-)的数字符号为754。

    简而言之,这就是Linux文件权限。

    什么是Chmod?

    在类似Unix的系统上, chmod 是系统级命令,代表“更改模式",可让您手动更改权限文件的设置。

    不要与 chown 混淆, chown 是类似Unix的sy上的另一个系统级命令词干代表“变更所有者",可让您将文件的所有权分配给另一个用户,或 chgrp ,其代表“变更组"并将文件分配给另一个组。知道这些很重要,但不如chmod常用。

    Chmod 644的含义是什么?

    将文件的权限设置为644可以使其只有所有者可以访问和修改他们想要的文件,而其他所有人只能访问而无需修改,而且没有人可以执行文件-甚至所有者也不能执行。这是可公开访问的文件的理想设置,因为它平衡了灵活性和安全性。

    Chmod 755的含义是什么?

    将文件的权限设置为755基本上与644,除了每个人还具有执行权限。这主要用于可公开访问的目录,因为需要执行权限才能更改为目录。

    Chmod 555是什么意思?

    将文件的权限设置为555会使它成为可执行文件。因此,除了系统的超级用户以外,任何人都无法修改该文件(了解有关Linux超级用户的更多信息)。这不是通常使用的644,但是要知道它仍然很重要,因为只读设置可以防止意外更改和/或篡改。

    Chmod 777是什么意思?

    将文件的权限设置为777可以使任何人都可以对文件进行任何操作。 这是一个巨大的安全风险,尤其是在Web服务器上!从字面上看,任何人都可以访问该文件,根据需要对其进行修改,然后在系统上执行该文件。您可以想象如果流氓用户把手伸进去可能造成的潜在损害。

    如何在Linux上使用Chmod

    chmod命令的格式很简单:

    chmod [permissions] [file]

    可以以数字符号形式给出权限,这是当您要为所有类分配特定权限时使用的最佳格式:

    chmod 644 example.txt

    权限也可以以符号形式给出,这在您使用时很有用只想修改特定类的权限。例如:

    chmod u=rwx example.txtchmod g=rw example.txtchmod o=rw example.txt

    您可以修改多个类的权限,例如该示例将所有者设置为读/写/执行,但组和其他用户设置为读/执行:

    chmod u=rwx,g=rw,o=rw example.txt

    将相同的权限分配给多个类时,可以将它们组合在一起:

    chmod u=rwx,go=rw example.txt

    但是,当您只想为特定类的特定操作添加或删除权限时,使用符号表示法的妙处就大放异彩。

    例如,此添加文件所有者的执行权限:

    chmod u+x example.txt

    并且此删除写入和执行权限对于其他用户:

    chmod o-wx example.txt

    最后,如果要对特定目录(即递归chmod)中的所有文件和文件夹应用特定的权限集,请使用-R选项并指定目录:

    chmod -R 755 example_directory

    乍一看,虽然chmod命令看起来有些疯狂,但实际上非常简单,而且完全合乎逻辑。如果您了解上述内容,则说明您已经基本掌握了chmod!

    了解有关掌握Linux的更多信息

    诸如chmod,chown和chgrp之类的命令只是Linux冰山一角。如果您是操作系统的新手,我们建议您查看这些针对Linux新手的巧妙技巧以及您永远不应运行的Linux命令。

    标签: