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参数试试,效果特别好。

二.本次学习遇到的问题

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

相关推荐
一勺菠萝丶17 分钟前
Docker Desktop 启动后容器自动启动怎么办?如何关闭容器自启动
运维·docker·容器
IT龟苓膏18 分钟前
Redis 数据类型底层原理:SDS、quicklist、intset、skiplist、Bitmap、HyperLogLog 一篇讲清
数据库·redis·skiplist
Esaka_Forever20 分钟前
uv init 完整用法(Python 最快包管理器)
服务器·python·uv
流星白龙28 分钟前
【MySQL高阶】19.变更缓冲区,自适应哈希索引,日志缓冲区
数据库·windows·mysql
晴天¥40 分钟前
Oracle中的监听配置与管理(动态、静态监听配置对比以及listener.ora和tnsnames.ora)
数据库·oracle
溜达的大象1 小时前
服务器挂了等用户报障?我用Prometheus搭了一套监控告警,服务器出状况第一时间通知我
服务器·php·prometheus
ylscode1 小时前
Comodo防火墙曝致命零日漏洞:单个IPv6数据包即可触发Windows蓝屏死机
运维·网络·windows·安全·安全威胁分析
逐影者3971 小时前
ch592f学习
学习
小满Autumn1 小时前
MVVM Light 架构笔记:定位器、命令、消息与 IoC 实践
笔记·学习·架构·c#·上位机·mvvm
蓝黑墨水1 小时前
动画角色的整个流程
学习