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

二.本次学习遇到的问题

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

相关推荐
毕竟是shy哥13 小时前
vs code连接远程服务器docker环境及配置免密登录
服务器·docker·vs code
徐小黑ACG14 小时前
nginx配置文件
linux·服务器·nginx
sunshine22 girl14 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
新时代牛马14 小时前
Linux VFS 完整篇:从path_openat、dentry/inode 到page cache 与挂载排障
linux·运维·服务器
java_logo14 小时前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·docker·容器·rocky linux·基础镜像·轩辕镜像·rhel 兼容
袋鼠云数栈14 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
拂拉氏14 小时前
【知识讲解】 Linux虚拟地址空间认识
linux·虚拟地址空间
ACP广源盛1392462567314 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
Kobebryant-Manba15 小时前
学习Bert微调
人工智能·学习·bert
ACP广源盛1392462567315 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频