7.4.2 文件隐藏属性
文件有隐藏属性,隐藏属性对系统有很大的帮助。尤其是在系统安全(Security)方面,非常重要。下面我们就来谈一谈如何设置与检查这些隐藏的属性。
chattr(设置文件隐藏属性)
[root@linux ~]# chattr [+-=][ASacdistu] 文件或目录名 参数: + : 增加某个特殊参数,其他原本存在的参数不动。 - : 删除某个特殊参数,其他原本存在的参数不动。 = : 设置一定,且仅有后面接的参数 A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access) 将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。 S : 这个功能有点类似sync。就是将数据同步写入磁盘中。 可以有效地避免数据流失。 a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root 才能设置这个属性。 c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩, 但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。 d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。 i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入 或新增数据”。对于系统安全性有相当大的帮助。 j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在 journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置了 日志了,所以这个属性无效。 s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。 u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中, 可以用来还原删除. 注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。 范例: [root@linux ~]# cd /tmp [root@linux tmp]# touch attrtest [root@linux tmp]# chattr +i attrtest [root@linux tmp]# rm attrtest rm: remove write-protected regular empty file `attrtest'? y rm: cannot remove `attrtest': Operation not permitted # 看到了吗?连root也没有办法删除这个文件。赶紧解除设置。 [root@linux tmp]# chattr -i attrtest
|
这个命令很重要,尤其是在系统的安全性方面。由于这些属性是隐藏的,所以需要用lsattr才能看到。笔者认为,最重要的是 +i属性,因为它可以让一个文件无法被更改,对于需要很高系统安全性的人来说,相当重要。还有相当多的属性是需要root才能设置的。此外,如果是登录文件,就更需要 +a参数,使之可以增加但不能修改与删除原有的数据。将来提到登录文件时,我们再来介绍如何设置它。
lsattr(显示文件的隐藏属性)
[root@linux ~]# lsattr [-aR] 文件或目录 参数: -a : 将隐藏文件的属性也显示出来。 -R : 连同子目录的数据也一并列出来。 范例: [root@linux tmp]# chattr +aij attrtest [root@linux tmp]# lsattr ----ia---j--- ./attrtest |
使用chattr设置后,可以利用lsattr来查看隐藏属性。不过,这两个命令在使用上必须要特别小心,否则会造成很大的困扰。例如,某天你心情好,突然将 /etc/shadow这个重要的密码记录文件设置为具有i属性,那么,过了若干天之后,突然要新增用户,却一直无法新增。怎么办?将i的属性去掉即可。
【责任编辑:
雪花 TEL:(010)68476606】