改变文件属性: chattr

chattr 命令用来改变文件的隐藏权限。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下几种模式:

  • a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
  • A 不再修改这个文件或目录的最后访问时间(atime)
  • b 不再更新文件或目录的最后存取时间;
  • c 将文件或目录压缩后存放
  • d 使用dump命令备份时忽略本文件/目录
  • D 检查压缩文件中的错误
  • i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
  • s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
  • S 文件内容在变更后立即同步到硬盘(sync)
  • u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
  • t 让文件系统支持尾部合并(tail-merging)
  • x 可以直接访问压缩文件中的内容

选项

  • -R 递归处理,将指令目录下的所有文件及子目录一并处理;
  • -v<版本编号> 设置文件或目录版本;
  • -V 显示指令执行过程;

  • +<属性> 开启文件或目录的该项属性;
  • -<属性> 关闭文件或目录的该项属性;
  • =<属性> 指定文件或目录的该项属性。

文件防篡改

用 chattr 命令防止系统中某个关键文件被修改:

$ chattr +i /etc/fstab

然后试一下 rm、mv、rename 等命令操作于该文件,都是得到 Operation not permitted 的结果。

让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:

$ chattr +a /data1/user_act.log

查看文件的隐藏权限

lsattr 命令用于显示文件的隐藏权限,格式为 lsattr [参数] 文件。在Linux系统中,文件的隐藏权限必须使用 lsattr 命令来查看,平时使用的ls之类的命令则看不出端倪:

$ ls -al linuxprobe
-rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe

一旦使用lsattr命令后,文件上被赋予的隐藏权限马上就会原形毕露。此时可以按照显示的隐藏权限的类型(字母),使用chattr命令将其去掉:

$ lsattr linuxprobe
-----a---------- linuxprobe
$ chattr -a linuxprobe
$ lsattr linuxprobe
---------------- linuxprobe
$ rm linuxprobe
rm: remove regular file ‘linuxprobe’? y

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress