如何在linux上使用chmod命令

控制谁可以使用Linux的chmod命令访问文件、搜索目录和运行脚本。这个命令修改Linux文件权限,乍看起来很复杂,但一旦你知道它们是如何工作的,实际上就相当简单了。...

控制谁可以使用Linux的chmod命令访问文件、搜索目录和运行脚本。这个命令修改Linux文件权限,乍看起来很复杂,但一旦你知道它们是如何工作的,实际上就相当简单了。

chmod修改文件权限

在Linux中,谁可以对文件或目录做什么是通过权限集来控制的。有三组权限。一组用于文件所有者,另一组用于文件组成员,最后一组用于其他所有人。

权限控制可以对文件或目录执行的操作。它们允许或阻止文件被读取、修改或执行(如果是脚本或程序)。对于目录,权限控制谁可以将cd放入目录,谁可以在目录中创建或修改文件。

您可以使用chmod命令来设置每个权限。要查看对文件或目录设置了哪些权限,可以使用ls。

查看和了解文件权限

我们可以使用-l(长格式)选项让ls列出文件和目录的文件权限。

ls -l

如何在linux上使用chmod命令

在每行上,第一个字符标识要列出的条目类型。如果是破折号(-),则是一个文件。如果是字母d,那就是一个目录。

接下来的九个字符表示三组权限的设置。

  • 前三个字符显示拥有文件的用户的权限(用户权限)。
  • 中间的三个字符显示文件组成员的权限(组权限)。
  • 最后三个字符显示不在前两个类别中的任何人的权限(其他权限)。

每组权限中有三个字符。这些字符表示是否存在某个权限。它们不是破折号(-)就是字母。如果字符是破折号,则表示未授予权限。如果字符是r、w或x,则已授予该权限。

这些字母代表:

  • r:读取权限。可以打开文件并查看其内容。
  • w:写权限。可以编辑、修改和删除文件。
  • x:执行权限。如果文件是脚本或程序,则可以运行(执行)。

例如:

  • ---意味着根本没有授予任何权限。
  • rwx表示已授予完全权限。读、写和执行指示器都存在。

在我们的屏幕截图中,第一行以d开头。这一行指的是一个名为“archive”的目录。目录的所有者是“dave”,目录所属的组的名称也叫“dave”

接下来的三个字符是此目录的用户权限。这表明所有者具有完全权限。r、w和x字符都存在。这意味着用户dave拥有该目录的读、写和执行权限。

第二组三个字符是组权限,它们是r-x。这些字符表示dave组的成员对此目录具有读取和执行权限。这意味着他们可以列出目录中的文件及其内容,并且可以将其cd(执行)到该目录中。他们没有写权限,因此无法创建、编辑或删除文件。

最后一组三个字符也是r-x。这些权限适用于不受前两组权限控制的人。这些人(称为“其他人”)对此目录具有读取和执行权限。

总之,组成员和其他人拥有读取和执行权限。所有者,一个叫dave的用户,也有写权限。

对于所有其他文件(除了mh.sh公司脚本文件)dave和dave组的成员对文件具有读写属性,其他成员仅具有读权限。

对于特殊情况mh.sh公司脚本文件中,所有者dave和组成员具有读取、写入和执行权限,其他成员仅具有读取和执行权限。

了解权限语法

要使用chmod设置权限,我们需要告诉它:

  • 谁:我们正在为谁设置权限。
  • 什么:我们在做什么改变?我们是在添加还是删除权限?
  • 哪个:我们要设置哪些权限?

我们使用指示符来表示这些值,并形成简短的“permissi***语句”,如u+x,其中“u”表示“user”(谁),“+”表示add(什么),“x”表示execute permission(哪个)。

我们可以使用的“谁”值是:

  • u:User,意思是文件的所有者。
  • g:Group,表示文件所属组的成员。
  • o:其他人,指不受u和g权限管理的人。
  • a:全部,就是说以上所有的。

如果这些都没有使用,chmod的行为就好像使用了“a”。

我们可以使用的“what”值是:

  • –:减号。删除权限。
  • +:加号。授予许可。权限将添加到现有权限中。如果您想拥有此权限并且只想拥有此权限集,请使用=选项,如下所述。
  • =:等号。设置权限并删除其他权限。

我们可以使用的“which”值是:

  • r:读取权限。
  • w:写权限。
  • x:执行权限。

设置和修改权限

假设我们有一个每个人都有完全权限的文件。

ls -l new_ file.txt

如何在linux上使用chmod命令

我们希望用户dave具有读写权限,组和其他用户仅具有读权限。我们可以使用以下命令:

chmod u=rw,og=r new_file.txt

如何在linux上使用chmod命令

使用“=”运算符意味着删除所有现有权限,然后设置指定的权限。

让我们检查此文件的新权限:

ls -l new_file.txt

如何在linux上使用chmod命令

现有的权限已被删除,新的权限已设置,如我们所料。

在不删除现有权限设置的情况下添加权限如何?我们也很容易做到。

假设我们有一个已经完成编辑的脚本文件。我们需要让它对所有用户都可执行。其当前权限如下所示:

ls -l new_script.sh

如何在linux上使用chmod命令

我们可以使用以下命令为每个人添加执行权限:

chmod a+x new_script.sh

如何在linux上使用chmod命令

如果我们看一下权限,就会发现execute权限现在被授予了所有人,而现有的权限仍然存在。

ls -l new_script.sh

如何在linux上使用chmod命令

如果没有“a+x”语句中的“a”,我们也可以实现同样的目标。下面的命令也同样有效。

chmod +x new_script.sh

设置多个文件的权限

我们可以同时对多个文件应用权限。

以下是当前目录中的文件:

ls -l

如何在linux上使用chmod命令

假设我们要从扩展名为“.page”的文件中删除“其他”用户的读取权限。我们可以使用以下命令执行此操作:

chmod o-r *.page

如何在linux上使用chmod命令

让我们来看看有什么影响:

ls -l

如何在linux上使用chmod命令

如我们所见,对于“其他”类别的用户,读取权限已从“.page”文件中删除。没有其他文件受到影响。

如果我们想在子目录中包含文件,我们可以使用-R(递归)选项。

chmod -R o-r *.page

数字速记

使用chmod的另一种方法是以三位数的形式向所有者、组和其他人提供您希望授予的权限。最左边的数字表示所有者的权限。中间数字表示组成员的权限。最右边的数字表示其他数字的权限。

此处列出了您可以使用的数字及其代表的内容:

  • 0:(000)没有权限。
  • 1:(001)执行权限。
  • 2:(010)写入权限。
  • 3:(011)写入和执行权限。
  • 4:(100)读取权限。
  • 5:(101)读取和执行权限。
  • 6:(110)读写权限。
  • 7:(111)读、写和执行权限。

三个权限中的每一个都由一个二进制位表示,二进制位相当于十进制数。所以5,在二进制中是101,意味着读和执行。2是二进制的010,表示写权限。

使用此方法,您可以设置希望拥有的权限;您不会将这些权限添加到现有权限中。因此,如果读写权限已经存在,则必须使用7(111)来添加执行权限。使用1(001)将删除读写权限并添加执行权限。

让我们为其他用户类别的“.page”文件添加读取权限。我们还必须设置用户和组权限,因此需要将它们设置为现有的权限。这些用户已经拥有读写权限,即6(110)。我们希望“others”具有读取和访问权限,因此需要将它们设置为4(100)。

以下命令将完成此操作:

chmod 664 *.page

这将用户、组成员和其他人所需的权限设置为所需的权限。用户和组成员的权限已重置为原来的权限,其他用户和组成员的读取权限已恢复。

ls -l

如何在linux上使用chmod命令

高级选项

如果您阅读chmod的手册页,您将看到与SETUID和SETGID位以及受限删除或“粘滞”位相关的一些高级选项。

对于99%需要chmod的情况,这里描述的选项将涵盖您。

  • 发表于 2021-04-03 05:19
  • 阅读 ( 143 )
  • 分类:互联网

你可能感兴趣的文章

40多个最常用的linux终端命令

... 在您真正充分利用终端之前,您需要知道如何导航它。这就是为什么我们认为这些是最基本的Linux命令:如果你不能更改目录或者在一个你不记得如何使用的命令上获得帮助,那么再多的终端知识也帮不了你。 ...

  • 发布于 2021-03-15 21:40
  • 阅读 ( 262 )

如何更改linux密码

...但幸运的是,更改Linux密码很容易。今天我们将向您展示如何通过几个简单的命令更改当前用户的密码、其他用户的密码和超级用户的密码。 ...

  • 发布于 2021-03-28 02:28
  • 阅读 ( 188 )

如何使用受限shell来限制linux用户可以做什么

...改其目录,您可以控制他们可以访问哪些命令。下面介绍如何在Linux上设置受限shell。 受限炮弹 受限shell不是另一个shell。这是标准外壳的另一种模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下启动。在本文中,我们将...

  • 发布于 2021-03-31 10:57
  • 阅读 ( 388 )

如何在mac上设置文件权限

...,可以设置文件和目录的读、写和可执行权限。 相关:如何在Linux上使用chmod命令 但是chmod命令并不是一个仅限Linux的命令。与许多其他Linux终端命令一样,chmod可以追溯到上世纪70年代的Unix Linux和macOS都有这一传统,这就是chmod命...

  • 发布于 2021-04-02 05:26
  • 阅读 ( 186 )

如何在linux上使用suid、sgid和sticky位

...权限的人才能访问存储的密码,那么那些没有该权限的人如何更改他们的密码? 提升你的地位 通常,Linux命令和程序运行时与启动程序的人具有相同的权限集。当root运行passwd命令以更改密码时,它将以root的权限运行。这意味着...

  • 发布于 2021-04-02 14:48
  • 阅读 ( 177 )

linux文件时间戳:atime、mtime和ctime

...们谈论Linux文件时间戳时。在本指南中,我们将解释系统如何更新它们,以及如何自己修改它们。 atime、mtime和ctime的区别 每个Linux文件都有三个时间戳:访问时间戳(atime)、修改时间戳(mtime)和更改时间戳(ctime)。 访问时...

  • 发布于 2021-04-02 16:01
  • 阅读 ( 343 )

如何在linux上使用chmod命令

...改Linux文件权限,乍看起来很复杂,但一旦你知道它们是如何工作的,实际上就相当简单了。 chmod修改文件权限 在Linux中,谁可以对文件或目录做什么是通过权限集来控制的。有三组权限。一组用于文件所有者,另一组用于文...

  • 发布于 2021-04-03 05:19
  • 阅读 ( 143 )

linux上的stdin、stdout和stderr是什么?

...出定向到/dev/null。 检测脚本中的重定向 我们讨论了命令如何检测是否有任何流被重定向,以及如何选择相应地改变其行为。我们能用自己的脚本来完成吗?是的,我们可以。这是一个很容易理解和运用的技巧。 在编辑器中键入...

  • 发布于 2021-04-03 06:21
  • 阅读 ( 241 )

如何使用linux type命令

...ell函数、内置命令或保留字。使用type可以发现Linux命令是如何执行的,并更好地理解系统。 照我的吩咐做 当我们打开一个终端窗口并开始向我们的Linux计算机发出命令时,我们很少停下来思考操作系统中的哪些软件组件正在对...

  • 发布于 2021-04-03 10:23
  • 阅读 ( 199 )

如何在linux上使用yes命令

...,但是在本教程中,我们将向您展示它的应用程序,以及如何从Linux和macOS中被压抑的积极性中获益。 “是”命令 yes命令是Linux和macOS等类似Unix的操作系统中最简单的命令之一。简单,我们指的是简单的使用和初始实现。在syste...

  • 发布于 2021-04-03 13:30
  • 阅读 ( 169 )
gpe6n9i0
gpe6n9i0

0 篇文章

相关推荐