后浪云linux教程:5.4 文件的隐藏属性

树叶云

Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。有用户曾经在生产环境和RHCE考试题目中碰到过明明权限充足但却无法删除某个文件的情况,或者仅能在日志文件中追加内容而不能修改或删除内容,这在一定程度上阻止了黑客篡改系统日志的图谋,因此这种“奇怪”的文件也保障了Linux系统的安全性。

  1. chattr命令

chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。chattr命令中可供选择的隐藏权限参数非常丰富,具体如表5-6所示。

表5-6 chattr命令中用于隐藏权限的参数及其作用

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

为了让读者能够更好地见识隐藏权限的效果,我们先来创建一个普通文件,然后立即尝试删除(这个操作肯定会成功):

    [root@linuxprobe ~]# echo "for Test" > linuxprobe
    [root@linuxprobe ~]# rm linuxprobe
    rm: remove regular file ‘linuxprobe’? y

实践是检验真理的唯一标准。如果您没有亲眼见证过隐藏权限强大功能的美妙,就一定不会相信原来Linux系统会如此安全。接下来我们再次新建一个普通文件,并为其设置不允许删除与覆盖(+a参数)权限,然后再尝试将这个文件删除:

    [root@linuxprobe ~]# echo "for Test" > linuxprobe
    [root@linuxprobe ~]# chattr +a linuxprobe
    [root@linuxprobe ~]# rm linuxprobe
    rm: remove regular file ‘linuxprobe’? y
    rm: cannot remove ‘linuxprobe’: Operation not permitted

可见,上述操作失败了。

  1. lsattr命令

lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。在Linux系统中,文件的隐藏权限必须使用lsattr命令来查看,平时使用的ls之类的命令则看不出端倪:

    [root@linuxprobe ~]# ls -al linuxprobe
    -rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe

一旦使用lsattr命令后,文件上被赋予的隐藏权限马上就会原形毕露。此时可以按照显示的隐藏权限的类型(字母),使用chattr命令将其去掉:

    [root@linuxprobe ~]# lsattr linuxprobe
    -----a---------- linuxprobe
    [root@linuxprobe ~]# chattr -a linuxprobe
    [root@linuxprobe ~]# lsattr linuxprobe 
    ---------------- linuxprobe
    [root@linuxprobe ~]# rm linuxprobe 
    rm: remove regular file ‘linuxprobe’? y

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/206281.html<

(0)
运维的头像运维
上一篇2025-04-08 00:26
下一篇 2025-04-08 00:28

相关推荐

  • CentOS 7搭建Rsyslong集中式日志系统

    在CentOS7中,Rsyslong是一个集中式的日志收集系统,可以运行在TCP或者UDP的514端口上。 目录 开始之前 配置接收日志的主机 配置发送日志的主机 日志回滚 附件:…

  • Linux内核升级具体方法

    如果Linux内核过会出现一些问题,比如:网卡不能使用,亮度不能调节,触摸板不能识别,蓝牙不能使用等等,这些关系都和linux的内核有关系,下面为大家分享一下Linux内核升级具体…

  • rtop – 远程服务器监控工具

    rtop是一个简单的无代理的远程服务器监控工具,基于 SSH 连接进行工作。无需在被监控的服务器上安装任何软件。rtop 直接通过 SSH 连接到待监控服务器,然后执行命令来收集监…

  • 详解Rust 语言中的函数

    Rust是一门系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似 ,但是设计者想要在保证性能的同时提供更好…

  • GitLab中对数据进行备份具体实现方法

    GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目,本篇文章重点为大家分享一下GitLab中对数据进行备份的具体方法。 1,全…

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注