在Linux中用chattr和lsattr命令管理文件和目录属性

Pradeep Kumar 的头像

·

·

·

13,701 次阅读

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

有两个命令 lsattrchattr 用来管理属性。下面是常用属性的列表。

| 属性 | 描述 |
| 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中用于设置或者取消属性的 操作符

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

chattrlsattr 命令的基本语法 :

# chattr <options> <attributes> <file or Directory >
# lsattr <File or Directory>

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

[root@linuxtechi ~]# chattr +i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
-- dummy_data

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

[root@linuxtechi ~]# rm -f dummy_data
rm: cannot remove 'dummy_data': Operation not permitted

[root@linuxtechi ~]# echo "test" >> dummy_data
-bash: dummy_data: Permission denied

例:2 移除不可更改属性


[root@linuxtechi ~]# chattr -i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
--a-i-i-i-i-i

via: <http://www.linuxtechi.com/file-directory-attributes-in-linux-using-chattr-lsattr-command/>

作者:[Pradeep Kumar](http://www.linuxtechi.com/author/pradeep/) 译者:[ictlyh](https://github.com/ictlyh) 校对:[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注