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

二.本次学习遇到的问题

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

相关推荐
wdxylb7 分钟前
云原生俱乐部-RH134知识点总结(2)
linux·云原生
_Chipen14 分钟前
lazy_vim_cmake_clangd_从零到自动补全与语法检查
linux·编辑器·vim
Easocen29 分钟前
Mybatis学习笔记(五)
笔记·学习·mybatis
椰子今天很可爱1 小时前
静态库和动态库
linux
Tapdata1 小时前
《实时分析市场报告 2025》上线 | 从批处理到实时洞察,2025 年全球实时分析市场全景解读
数据库
檀越剑指大厂1 小时前
【Linux系列】如何在 Linux 服务器上快速获取公网
linux·服务器·php
海梨花2 小时前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
共享家95272 小时前
linux-高级IO(上)
java·linux·服务器
丑小鸭是白天鹅2 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
代码的余温3 小时前
SQL性能优化全攻略
数据库·mysql·性能优化