Linux chattr 命令初学者教程(5 个示例)Linux chattr 命令初学者教程(5 个示例)Linux chattr 命令初学者教程(5 个示例)Linux chattr 命令初学者教程(5 个示例)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux chattr 命令初学者教程(5 个示例)

Linux 计算机通常由不同的用户使用。因此,这些用户有可能访问一组共同的文件。这为意外删除或编辑重要文件等问题打开了大门,而您作为管理员绝对不希望这样。

幸运的是,有一个名为 chattr 的命令专为此类情况而设计。在本教程中,我们将通过一些易于理解的示例来解释此工具。但在我们这样做之前,我们应该提到这里的所有示例都已经在 Ubuntu 22.04 LTS 和 Debian 11 上进行了测试。

Linux chattr 命令

基本上,chattr 命令用于更改 Linux 文件系统上的文件属性。以下是它的语法:

chattr [ -RVf ] [ -v version ] [ mode ] files...

这是手册页中关于它的内容:

       chattr changes the file attributes on a Linux file system.

       The format of a symbolic mode is +-=[aAcCdDeijsStTu].

       The  operator  '+'  causes  the  selected attributes to be added to the
       existing attributes of the files; '-' causes them to  be  removed;  and
       '=' causes them to be the only attributes that the files have.

       The  letters  'aAcCdDeijsStTu' select the new attributes for the files:
       append only (a), no atime updates (A), compressed (c), no copy on write
       (C), no dump (d), synchronous directory updates (D), extent format (e),
       immutable (i), data journalling (j), secure deletion  (s),  synchronous
       updates  (S),  no tail-merging (t), top of directory hierarchy (T), and
       undeletable (u).

       The following attributes are read-only, and may be listed by  lsattr(1)
       but  not  modified  by  chattr:  compression  error (E), huge file (h),
       indexed directory (I), inline data (N), compression raw access (X), and
       compressed dirty file (Z).

       Not  all  flags  are supported or utilized by all filesystems; refer to
       filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for
       more filesystem-specific details.

以下是一些 Q&A 风格的示例,可以让您对 chattr 命令的工作原理有一个很好的了解。

Q1。如何使用 chattr 命令?

假设您想将文件设置为只读。因此,您所要做的就是运行带有 +i 选项的 chattr 命令,并将文件名作为输入。

例如:

chattr +i test.txt

以下屏幕截图显示,使用 chattr 将文件变为只读后,其他操作均未成功。

注意:正如您已经观察到的那样,您需要拥有 root 权限才能使用 chattr 命令。

Q2。如何删除 chattr 施加的只读限制?

这很简单 - 您所要做的就是使用 -i 选项而不是 +i。例如:

chattr -i 测试.txt

因此,您可以看到使用 -i 选项删除了只读因素。

Q3.如何为文件提供仅附加权限?

有时,您可能不希望对文件进行完全限制。我的意思是,您可能希望为用户提供对文件的仅附加访问权限,以便可以添加新信息,但不能删除或编辑现有信息。这也可以通过 +a 选项使用 chattr。

chattr +a test.txt

所以你可以看到我们现在可以附加到文件,但不能编辑文件中的现有信息以及删除文件。要扭转这种行为,只需使用 -a 选项。

chattr -a test.txt

Q4.如何使用 chattr 对目录中的所有文件应用限制?

这可以使用标志 -R 来完成,它允许您递归地更改目录及其内容的属性。例如,如果要将 test-dir 目录中的所有文件设为只读,请按以下方式使用 chattr 命令:

chattr -R +i ./test-dir/

以下屏幕截图显示只读限制已成功应用于目录内的所有文件。

Q5.如何检查应用于文件的 chattr 属性?

到目前为止,为了检查 chattr 属性是否已成功应用,我们尝试执行编辑文件或删除文件等操作。但是有一个单独的命令可以让您轻松查看属性是否已应用。有问题的命令是 lsattr。

lsattr [FILENAME]

例如,以下屏幕截图显示 lsattr 输出,清楚地表明 i 属性已应用于目录中的所有文件。

再次确认一下,这是使用 -i 选项后的输出。

正如您在上面的屏幕截图中看到的,只读属性已从所有文件中删除。

结论

如果您是系统管理员或通常在 Linux 机器上管理用户,您可能会同意 chattr 是一个必须知道的命令行工具。有效地使用该命令可以为您省去很多麻烦。本文应该足以让您开始使用该命令。一旦您练习了我们在这里讨论的示例,请前往工具手册页了解更多信息。

©2015-2025 艾丽卡 support@alaica.com