当前位置:首页>Linux>Linux文件的隐藏属性: Isattr、chattr

Linux文件的隐藏属性: Isattr、chattr

  • 2026-09-02 19:59:21
Linux文件的隐藏属性: Isattr、chattr

 文件的隐藏属性: Isattr、chattr

      这两个命令用来改变文件、目录的隐藏属性,与 chmod、ls 这些命令相比,chmod 只是

改变文件的读写、执行权限,更底层的属性控制是由 chattr命令来改变的。

      Linux 中的 ext3 /ext4/xfs 文件系统都支持隐藏属性。

1. Isattr 命令

语法:

1sattr [选项][文件名]

功能:lsattr 比较简单,只是显示文件的属性。1sattr 命令选项及其功能见表 1。

表 1 Isattr 命令的各个选项及其功能

选项 功能

-a  列出目录中的所有文件,包括以.开头的文件

-d  以和文件相同的方式列出目录,并显示其包含的内容

-R  以递归的方式列出目录的属性及其内容

2.chattr 命令

语法:

     chattr[ -RV][-v version ][ mode ] files...

     功能:chattr 命令的作用很大,其中一些功能是由 Linux 内核版本来支持的,如果Linux 内核版本低于 2.2,那么许多功能不能实现。同样-D 检查压缩文件中的错误的功能,需要 2.5.19 以上内核才能支持。另外,通过 chattr 命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr 命令不能保护/、/dev、/tmp、/var 目录。

        -R  选项用于递归地对目录和其子目录进行操作。

      最关键的是在[mode]部分,[mode]部分是由+-=和[ASacdijstu]这些字符组合的,这部分是用来控制文件的属性。chattr 命令选项及其功能见表2。
表 2 chattr 命令的各选项及其功能
选项  功能
+    在原有参数设定基础上追加参数
-     在原有参数设定基础上移除参数
=    更新为指定参数
A   文件或目录的 atime (acces time)不可被修改,          (modified),告诉系统不要修改对这个文件的最后        访问时间
S    硬盘 I/O同步选项,功能类似 sync。一旦应用程序        对这个文件执行了写操作,使系统立刻把修改的结          果写到磁盘上
a    即 Append Only。系统只允许在这个文件之后追        加数据,不允许任何进程覆盖或者截断这个文件。          如果目录具有这个属性,系统将只允许在这个目录          下建立和修改文件,而不允许删除任何文件,只有           root 才能设定这个属性
c    即 Compress。系统以透明的方式压缩这个文件。       从这个文件读取时,返回的是解压之后的数据;而向         这个文件中写人数据时,数据首先被压缩之后才写人       磁盘
d   即 No dump。在进行文件系统备份时,dump 程序       将忽略这个文件
i    即 Immutable。系统不允许对这个文件进行任何的       修改。如果目录具有这个属性,那么任何的进程只能       修改目录下的文件,不允许建立和删除文件。i参数         对于文件系统的安全设置有很大帮助
j    即 journal,设定此参数,使得当通过 mount 命令的       参数 data= ordered 或者 data=writeback 挂载         文件系统时,文件在写人时会先被记录(在 journal          中)。如果 filesystem被设定参数为                             data=journal,   则该参数自动失效
s     即 Secure Delete。让系统在删除这个文件时,使         用 0 填充文件所在的区域
u     即 Undelete。当一个应用程序请求删除这个文件         时,系统会保留其数据块以便以后能够恢复删除的         这个文件

      各参数选项中常用到的是 a和 i。 a 选项强制只可添加而不可删除,多用于日志系统的安全设定。而 i是更为严格的安全设定,只有 superuser(root)或具有 CAP_LINUX_IMMUTABLE 处理能力(标识)的进程能够施加该选项。
示例如下:

 #chattr +i /etc/fstab 

//用 chattr 命令防止系统中某个关键文件被修改,然后试一下用 rm.mv.rename 等命令操作该文件都是得到Operation not permitted 的结果

 #chattr +a /datal/user_act,log 

//让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作
#chattr +si test.txt
//给 test.txt 文件添加同步和不可变属性
#chattr -ai test.txt
//把文件的只扩展(append-only)属性和不可变属性去掉

#chattr =aiA test.txt
//使 test.txt 文件只有 a、i 和 A 属性
//主机直接暴露在 Internet 或者位于其他危险的环境,有很多 She1l 账户或者提供 HTTP和 FTP等网络服务,一般应该在安装配置完成后使用如下命令:
#chattr -R+i /bin /boot /etc /lib /sbin
#chattr -R+i /usr/bin /usr/include /usr/lib’/usr/sbin
#chattr +a /var/log/messages /var/log/secure

      注意:如果很少对账户进行添加、变更或者删除等操作,把/home 本身设置为immutable 属性也不会造成什么问题。在很多情况下,整个/usr 目录树也应该具有不可改变属性。实际上,除了对/usr 目录使用 chattr -R +i /usr/命令外,还可以在/etc/fstab文件中使用 ro 选项,使/usr 目录所在的分区以只读的方式加载。另外,把系统日志文件设置为只能添加属性(append-only),将使入侵者无法擦除自己的踪迹。

最新文章

随机文章