Linux学习记录20——文件的隐藏权限

一.学习的内容

Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。既然叫隐藏权限,那么使用常规的ls命令肯定不能看到它的真面目。隐藏权限的专用设置命令是 chattr ,专用查看命令是 lsattr。

1、chattr命令

chattr命令 用于设置文件的隐藏权限 。命令格式:chattr 参数 文件名称

如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加 "+参数" ,如果想要把某个隐藏功能移出文件,则需要追加 "-参数"。chattr命令中可供选择的隐藏权限参数非常丰富,具体如表1所示。

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

我们先来创建一个普通文件,然后立即尝试删除(这个操作肯定会成功):
图1 创建普通文件并删除

接下来再次新建一个普通文件,并为其设置 "不允许删除与覆盖"(+a参数)权限,然后再尝试将这个文件删除:
图2 设置 +a参数

2、lsattr命令

lsattr命令用于查看文件的隐藏权限 。命令格式:lsattr 参数 文件名称

在Linux系统中,文件的隐藏权限必须使用lsattr命令来查看,平时使用的ls之类的命令则看不出端倪,一旦使用lsattr命令后,文件上被赋予的隐藏权限马上就会原形毕露:
图3 分别使用 ls 和 lsattr 查看文件权限

此时按照显示的隐藏权限的类型(字母),使用chattr命令将其去掉:
图4 使用 chattr -a 命令

我们一般会将-a参数设置到日志文件(/var/log/messages)上,这样可在不影响系统正常写入日志的前提下,防止黑客擦除自己的作案证据。如果希望彻底地保护某个文件,不允许任何人修改和删除它的话,不妨加上-i参数试试,效果特别好。

二.本次学习遇到的问题

三、问题的答案及解决办法

相关推荐
gjf05_051 小时前
人该怎样活着呢?版本75.8
学习
一只积极向上的小咸鱼2 小时前
第一性原理思考:从拆解问题到用实验检验答案
数据库
weifont2 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
拂拉氏2 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
这个DBA有点耶2 小时前
时序数据库InfluxDB高基数问题深度拆解:内存索引膨胀机制与OOM完整链路
数据库·架构·dba
Fcy6482 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
加油yx2 小时前
MySQL数据类型
数据库·mysql
li星野3 小时前
【学习记录】PCB与PCBA核心知识全解析:从设计到制造的关键细节
学习·制造
Mikko73 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
书生执笔画浮沉3 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感