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

二.本次学习遇到的问题

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

相关推荐
数据组小组1 小时前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
梦想很大很大2 小时前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair3 小时前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主3 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
悟空聊架构7 小时前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构
IvorySQL7 小时前
PostgreSQL 技术日报 (3月4日)|硬核干货 + 内核暗流一网打尽
数据库·postgresql·开源
0xDevNull10 小时前
Linux切换JDK版本详细教程
linux
进击的丸子11 小时前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
茶杯梦轩11 小时前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
NineData1 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析