Linux 系统中的文件除了具备一般权限和特殊权限外,还有一种隐藏权限,也就是被隐藏起来的权限,默认情况下不能直接被用户查看到。 

隐藏权限有什么用处呢? 比如说我给某个文件设置了 +a 的隐藏权限,该文件则具备不能被删除的权限。 即使是root用户也不能删除该文件。 在一定程度上防止了黑客篡改文件日志内容的意图,保障了Linux系统的安全性。

1、设置/删除文件的隐藏属性

        使用命令 chattr 命令可以设置/删除文件的隐藏属性

chattr 命令用于设置文件的隐藏属性。
    1、如果想把某个隐藏权限加到文件上, 则执行: chattr +参数 文件名
    2、如果想把隐藏权限去掉,则执行: chattr -参数 文件名

参数说明:

1、a:   使文件不能被删除/覆盖内容。
2、i:    无法对文件进行修改。如果对目录设置了该参数,表示只能修改目录下面文件的内容,
         不能新建和删除文件。
3、S:   文件内容在变更后立即同步到硬盘
4、s:   彻底从硬盘中删除,不可回复。(用0填充原文件所在硬盘区域)
5、A:   不在修改这个文件或目录的最后访问时间(atime)
6、b:    不在修改文件或目录的存取时间
7、D:   检查压缩文件中的错误
8、d:    使用 dump 命令备份时忽略该文件或目录
9、c:   默认将文件或目录进行压缩
10、u:    当删除该文件后依然保留该文件在硬盘中的数据,方便日后恢复
11、X:    可以直接访问压缩文件中的内容

示例:

1、创建 a.txt 文件

[root@mycentos a]# echo "abc" > a.txt
[root@mycentos a]# ll
total 4
-rw-r--r-- 1 root root 4 Sep  9 19:42 a.txt

当前是 root 账号,可以直接删除

[root@mycentos a]# rm a.txt 
rm: remove regular file ‘a.txt’? y
[root@mycentos a]# ll
total 0
[root@mycentos a]# 


2、给文件加上 隐藏权限 chattr +a a.txt 后再次删除,提示没有权限
[root@mycentos a]# ll
total 4
-rw-r--r-- 1 root root 4 Sep  9 19:43 a.txt
[root@mycentos a]# chattr +a a.txt  ## 给文件加隐藏权限
[root@mycentos a]# rm a.txt 
rm: remove regular file ‘a.txt’? y
rm: cannot remove ‘a.txt’: Operation not permitted
[root@mycentos a]# 


3、删除文件的隐藏权限 chattr -a a.txt 后 再次删除,成功

[root@mycentos a]# chattr -a a.txt ## 删除文件的隐藏权限
[root@mycentos a]# rm a.txt 
rm: remove regular file ‘a.txt’? y
[root@mycentos a]# ll
total 0
[root@mycentos a]# 

2、lsattr 显示文件的隐藏权限

[root@mycentos a]# chattr +a a.txt 
[root@mycentos a]# lsattr a.txt 
-----a-------e-- a.txt
[root@mycentos a]#

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐