固定链接 在 Linux 中用 Chattr 和 Lsattr 命令管理文件和目录属性

在 Linux 中用 Chattr 和 Lsattr 命令管理文件和目录属性

在 Linux 中用 Chattr 和 Lsattr 命令管理文件和目录属性

为了允许添加数据,防止更改或者删除等,文件和文件夹可以设定特定的控制属性。

例如,你可以在关键的系统文件或者文件夹中启用属性,然后没有任何用户,包括 root,可以删除或者修改它,比如不允许使用像 dump 这样的命令等备份工具去备份一个特定的文件或者文件夹等等。这些属性只可以在 ext2,ext3 或者 ext4 文件系统中的文件和文件夹上设定。

有两个命令 lsattr 和 chattr 用来管理属性。下面是常用属性的列表:

属性 描述
a (append) 允许在文件中进行追加操作
A 这个属性不允许更新文件的访问时间
c (compressed) 启用这个属性时,文件在磁盘上会自动压缩
d (dump) 不能使用 dump 命令备份文件
D 设置了文件夹的 D 属性时,更改会在同步保存在磁盘上
e (extent format) 它表明,该文件使用磁盘上的块的映射扩展
i (immutable) 在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件
j (journaling) 设置了这个属性时,文件的数据首先保存在日志中,然后再写入文件
S (synchronous) 设置了这个属性时,变更或更改同步保存到磁盘上

Chattr 属性中可以使用的不同选项 :

  • -R 递归地修改文件夹和子文件夹的属性
  • -V chattr 命令会输出带有版本信息的冗余信息
  • -f 忽略大部分错误信息

在 chattr 中用于设置或者取消属性的操作符:

  • ‘+’ 符号用来为文件和文件夹设置属性,
  • ‘-‘ 符号用来移除或者取消属性
  • ‘=’ 使它们成为文件有的唯一属性

Chattr 和 lsattr 命令的基本语法:

例1:使用‘i’属性使文件不可更改:

现在试着删除或者修改文件:

例2: 移除不可更改属性:

例3: 在文件中只允许追加操作:

现在试着把 fstab 文件的内容追加到 test_data 文件:

例4: 使用 -R 选项和 ‘+i’ 属性使文件夹和它的子文件夹成为安全目录。

让我们来新建一个 test_dir 文件夹和它的子文件夹:

在 sysadmin 文件夹递归设置不可更改属性:

现在试着用 RM 命令删除文件夹:

使用以下命令递归取消属性:


本文作者:王东方

您的留言将激励我们越做越好