CentOS 文件隐藏属性

1、chattr用于配置文件的隐藏属性

语法:
chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...

选项与参数:

+:增加某个特殊参数,其他原始存在参数不动;

-:移除指定参数,其他参数不变;

=:设定为chattr后面输入的参数
A:当设定了A这个属性时,若你有存取此文件/目录时,他的访问时间atime将不会被修改,可避免I/O较慢的机器过渡存取磁盘

S:一般文件是异步写入磁盘的,如果加上S这个属性,则同步写入

a:当设定a之后,这个文件将只能增加数据,不能删除也不能修改数据,仅root用户允许设定

c:这个属性设定后,将自动压缩文件,在读取时自动释放

d:当dump程序被执行的时候,设定d属性可使该文件/目录不会被dump备份

i:该属性可以让一个档案不能被删除、修改、设定链接也无法写入或新增资料,对于系统安全有帮助,仅root用户允许设定

s:当文件设定了s属性时,如果删除该文件,则无法找回

u:与s相反,当删除该文件,数据依据存在于磁盘中,可以使用来救援该文件

场景1:仅能在日志文件中追加内容而不能修改或删除内容

#使用chattr需要root的权限,并且这个命令并不做直接提示
[es@bigdata-senior01 ~]$ sudo chattr +a loga.txt
[sudo] es 的密码:
[es@bigdata-senior01 ~]$ lsattr loga.txt
-----a---------- loga.txt
[es@bigdata-senior01 ~]$ lsattr 1.txt
---------------- 1.txt
#普通用户如果不适用sudo,无法正常使用chattr命令
[es@bigdata-senior01 ~]$ chattr +a 1.txt
chattr: 不允许的操作 while setting flags on 1.txt

[es@bigdata-senior01 ~]$ ll loga.txt
-rw-r--r-- 1 es es 0 1月  12 21:43 loga.txt
[es@bigdata-senior01 ~]$ echo $PATH > loga.txt #只能追加
-bash: loga.txt: 不允许的操作
[es@bigdata-senior01 ~]$ echo $PATH >> loga.txt
[es@bigdata-senior01 ~]$ rm -rf loga.txt
rm: 无法删除"loga.txt": 不允许的操作

用vi编辑后无法保存。

场景2:创建一个文件,无法进行删除。

[es@bigdata-senior01 ~]$ echo $HOME >1.txt
[es@bigdata-senior01 ~]$ cat 1.txt
/home/es
[es@bigdata-senior01 ~]$ sudo chattr +i 1.txt
[sudo] es 的密码:
[es@bigdata-senior01 ~]$ lsattr 1.txt
----i----------- 1.txt
[es@bigdata-senior01 ~]$ ll 1.txt
-rw-rw-r-- 1 es es 9 1月  12 21:50 1.txt
[es@bigdata-senior01 ~]$ rm 1.txt
rm:是否删除有写保护的普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作

2、lsattr用于查看文件的隐藏属性

lsattr显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
在 Linux 系统中,文件的隐藏权限必须使用 lsattr 命令来查看,平时使用的 ls 之类的命令则看不出隐藏属性
原文地址:https://www.cnblogs.com/asker009/p/10261193.html