文件属性

摘要

就像 FAT 有文件属性(文档,系统文件,隐藏)一样,GNU/Linux 文件系统也有它自己的文件属性,不过它们有些区别。为了使本书内容完整,我们将在这里简要介绍它们,不过它们很少被用到。但是如果您真的需要安全的系统,就请继续读下去吧。

这里有两个对文件属性进行操作的命令: lsattr(1)chattr(1)。您可能会猜到 lsattr 用来“列出”属性,而 chattr 用来“更改”它们。只有目录和普通文件可以被赋予这些属性。以下是可以被赋予的属性:

  1. A (“没有访问时间”): 如果一个文件或目录被赋予了这种属性,无论它是被读或写中的哪种方式访问,它的上次访问时间都不会被更新。举例来说,这对于经常被读访问的文件或目录是非常有用的。尤其因为这是信息节点被只读打开时唯一更改的参数。

  2. a(“只能附加”):如果一个文件具有这种属性并且被以写入的方式打开,唯一可能对它进行的操作就是增加数据到以前存入的内容之后。对于一个目录,这意味着您只能增加文件而不能对现存文件改名或删除。只有 root 可以设定或清除这种属性。

  3. d (“dump”):dump (8)UNIX® 的标准备份工具。它 dump 任何 /etc/fstab 中 dump 计数器为1的文件系统(请参考 第 8 章 文件系统和挂载点)。和别的属性不同的是,如果一个文件或目录被赋予了这种属性,在 dump 执行过程中它将不被处理。注意对于目录来说,这也包括它所有的子目录和其中包含的文件。

  4. i (“不可变更”):一个被赋予这种属性的文件或目录是完全不能被修改的:它不能被重命名,指向它链接不能被建立[24]而且它不能被删除。只有 root 可以设置或清除这种属性。注意它也会禁止对访问时间的改动。因此当 i 属性被设置了以后,您就不用再设置 A 了。

  5. s(“安全删除”):当一个具有这种属性的文件或目录被删除以后,这个文件或目录所占有的块将被0覆盖。

  6. S(“同步模式”):所有对具有这样属性的文件或目录的修改都会被立即同步地写入到磁盘上。

比如您可能会为了防止恶性突发事件而给基本系统文件设置 i 属性。还有,看一下 man 里关于 A 属性的介绍:这可以减少对磁盘的操作,特别是可以为笔记本电脑节省电池耗电。



[24] 确定您明白“增加一个链接”对于文件和目录分别意味着什么!