linux 文件扩展属性
linux 文件扩展属性
linux 下的文件和目录,除了有 rwx 可读、可写、可执行的权限属性之外,还有其它扩展属性。比如只能追加 (append only)、不可变更(immutable),加上这类属性,可以提高文件的安全性。
修改文件属性为(append only)
$ chattr +a test.log
当设置文件属性为(append only)后,文件内容只能追加,不能覆盖,也不可删除。如果要删除文件,只能先取消(append only)属性。
$ chattr -a test.log
另一个属性也比较常用,即 immutable 不可变属性,文件不能修改,也不能删除。
对于只读文件,加上 immutable 属性可以防删除。
除了只读和追加属性,还有以下属性
- a append only(只能追加)
- c compressed
- d no dump
- e extent format
- i immutable (不可修改,不可删除)
- j data journalling
- s secure deletion
- t no tail-merging
- u undeletable (其他用户不可删除,root不受限制)
- A no atime updates
- C no copy on write
- D synchronous directory updates
- S synchronous updates
- T top of directory hierarchy
当前用得上的属性分别为 a, i,u,分别用于可追加、只读、能修改但不能删除。
这些扩展属性是独立于 rwx 之外的,就算目录权限设置为 777,当设置了 immutable 属性后,文件也是不可以删除的。
对于目录权限,当目录设置为只读后,一般用户是没有权限删除目录内的内容的,但root用户不受此限制,root 在目录为只读时一样有创建和删除文件的权限,这也是 root 用户误操作时可以删除根目录/ 的原因。
为了防止一些重要文件被删除或修改,此时就需要使用扩展权限。