3.2.2 文件隐藏属性

上一小节中介绍了文件权限属性,但这只是文件属性中的一部分。Linux下的文件还有一些隐藏属性,必须使用lsattr来显示,默认情况下,文件的隐藏属性都是没有设置的。查看文件的隐藏属性需要使用lsattr命令,如下所示:


  1. [root@localhost ~]# lsattr anaconda-ks.cfg
  2. ------------- anaconda-ks.cfg

结果中的第一列是13个小短横,其中每一个小横线都是一个属性,如果当前位置上设置了该属性就会显示相对应的字符。

如果要设置文件的隐藏属性,需要使用chattr命令。这里介绍几个常用的隐藏属性,第一种是a属性。拥有这种属性的文件只能在尾部增加数据而不能被删除。下面使用chattr来给该文件添加a属性:


  1. [root@localhost ~]# chattr +a anaconda-ks.cfg
  2. [root@localhost ]# lsattr anaconda-ks.cfg
  3. -----a------- anaconda-ks.cfg
  4. [root@localhost ]# rm anaconda-ks.cfg
  5. rm: remove regular file 'anaconda-ks.cfg'? y
  6. rm: cannot remove 'anaconda-ks.cfg': Operation not permitted

如上所示,设置了a属性的文件,即便是root用户也不能删除它,但是实际上可以以尾部新增(append)的方式继续向该文件中写入内容。

还有一种比较常用的属性是i属性。设置了这种属性的文件将无法写入、改名、删除,即便是root用户也不行。这种属性常用于设置在系统或者关键服务中的配置文件,这对提升系统安全性有较大的帮助。

更多隐藏属性请使用man chattr查看。