lsattr与chatrr权限

  sre

文件的隐藏属性只对ext2/ext3/ext4文件系统完整有效,其他文件系统可能仅支持部分隐藏属性或者根本不支持隐藏属性。
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的.
如果Linux内核版本低于2.2,那么许多功能不能实现。
-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。
通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。
chattr命令不能保护/、/dev、/tmp、/var目录。

用chattr命令可以改变一个文件的隐藏属性。
与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。
其语法格式为:
chattr [ -RVf ] [ -v version ] [ mode ] files…

选项 含义
-R 递归更改目录下所有子目录和文件的属性
-V 显示详细信息
-f 忽略大部分错误信息
-v version 设置文件的档案号码
mode 设置文件的隐藏属性,其格式为+-=[acdeijstuACDST]
最关键的是在[mode]部分,[mode]部分的格式是+-=[acdeijstuACDST],这部分是用来设置文件的属性。
其中+表示在原有参数设定基础上追加参数;-表示在原有参数设定基础上移除参数;=表示更新为指定参数。

属性 含义
A 文件的atime(access time)不可被修改,这样可以减少磁盘I/O数量,可以有效预防磁盘I/O错误的发生
S 硬盘I/O同步选项,功能类似sync
a 即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性
i 文件不能被删除、改名、设定链接关系,同时不能写入或新增内容(即使是root用户)。只有root才能设定这个属性
c 即compresse,文件会自动的经压缩后再存储,读取时会自动的解压
d 即no dump,设定文件不能成为dump程序的备份目标
j 即journal,设定此参数使得当通过mount参数”data=ordered”或”data=writeback”挂载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效
s 即secure,保密选项。设置了s属性的文件在被删除时,其所有数据块会被写入0
u 即undelete,反删除选项。与s相反,文件在被删除时,其所有的数据块都保留着,用户今后可以恢复该文件
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

每个内核版本支持的属性标志:

* 允许设置这个标志并使设置生效
i 允许设置这个标志但忽略其值
- 完全忽略这个标志

1.0 1.2 2.0 2.2 2.4
A - - * * *
S * * * * *
a - * * * *
i - * * * *
d - * * * *
c i i i i i
s * * i i i
u i i i i i

例如将目录下的文件设置为不允许任何人修改:
$ sudo chattr -R =i ~/dir

用lsattr命令列出文件的隐藏属性。其语法格式为:

lsattr [ -RVadv ] [ files… ]

下面给出几个选项的含义:

选项 含义
-R 递归显示目录下所有子目录和文件的属性
-V 显示lsattr程序的版本信息
-a 显示所有文件的属性信息,包括以.开头的文件
-d 显示目录的属性,而不是目录下的文件的属性
-v 显示文件的档案号码

例如,下面这条命令显示MySecretDir目录的隐藏属性:
$ lsattr -Rd MySecretDir/
----i----------- MySecretDir/

LEAVE A COMMENT

Captcha Code