余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

巧妙利用 lsattr 和 chattr 命令,防止文件被修改,黑客绕路走

xiyangw 2023-05-14 11:58 10 浏览 0 评论

可以在文件或目录上设置某些控制属性,以允许追加数据,防止数据被更改或删除等。例如,您可以启用关键系统文件或目录上的属性,以便任何用户 (包括 root) 都不能删除或更改它,禁止备份实用程序 (如 dump 命令) 备份特定的文件或目录,等等。这些属性只能在 ext2、ext3 或 ext4 文件系统中的文件和目录上设置。

有 lsattr 和 chattr 两个命令用于属性管理,下面是常用属性列表:

巧妙利用 lsattr 和 chattr 命令,防止文件被修改,黑客绕路走

属性

描述

a (append)

允许对文件进行追加操作

A

此属性不允许更新文件的访问时间

c (compressed)

当此属性启用时,文件将自动压缩到磁盘上

d (dump)

文件不能通过 dump 命令进行备份

D

当此属性启用时,更改将同步存储在磁盘上

e (extent format)

它显示文件正在使用区段映射磁盘上的块

i (immutable)

当该属性在文件上启用时,我们不能修改,重命名和删除文件

j (journaling)

当设置此属性时,文件的数据先存储在日志中,然后再写入文件

S (synchronous)

设置此属性后,更改或修改将同步存储在磁盘上

chattr 命令中可使用的不同选项:

  • -R 递归地更改目录及其子目录的属性
  • -f 禁止显示大多数错误消息
  • -V 详细输出信息

用于 chattr 命令中设置和取消设置属性的操作符:

  • + 用于设置文件和目录的属性
  • - 用于删除或取消设置属性
  • = 使它们成为文件所拥有的唯一属性

chattr 命令语法:

# chattr <options> <attributes> <file or Directory >

lsattr 命令语法:

# lsattr <File or Directory>

(1) 使文件不可变

[root@linuxtechi ~]# chattr +i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
----i----------- dummy_data

现在尝试删除和编辑文件

[root@linuxtechi ~]# rm -f dummy_data
rm: cannot remove ‘dummy_data’: Operation not permitted

[root@linuxtechi ~]# echo "test" >> dummy_data
-bash: dummy_data: Permission denied

(2)删除不可变属性

[root@linuxtechi ~]# chattr -i dummy_data
[root@linuxtechi ~]# lsattr dummy_data
---------------- dummy_data

(3) 只允许对文件进行追加操作

[root@linuxtechi ~]# chattr +a dummy_data
[root@linuxtechi ~]# lsattr dummy_data
-----a---------- dummy_data

尝试对文件追加内容

[root@linuxtechi ~]# cat /etc/fstab >> dummy_data
[root@linuxtechi ~]#

(4) 保护目录及其子目录

让我们创建一个目录 sysadmin 及其子目录

[root@linuxtechi ~]# mkdir sysadmin
[root@linuxtechi ~]# mkdir sysadmin/admim_{1,2,3,4,5}
[root@linuxtechi ~]# ls -l sysadmin/
total 0
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_1
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_2
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_3
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_4
drwxr-xr-x. 2 root root 6 Apr 19 09:50 admim_5

在目录 sysadmin 上递归地设置不可变属性

[root@linuxtechi ~]# chattr -R +i sysadmin

[root@linuxtechi ~]# lsattr -R sysadmin/
----i----------- sysadmin/admim_1
sysadmin/admim_1:
----i----------- sysadmin/admim_2
sysadmin/admim_2:
----i----------- sysadmin/admim_3
sysadmin/admim_3:
----i----------- sysadmin/admim_4
sysadmin/admim_4:
----i----------- sysadmin/admim_5
sysadmin/admim_5:
[root@linuxtechi ~]#

现在尝试使用 rm 命令删除目录

[root@linuxtechi ~]# rm -rf sysadmin
rm: cannot remove ‘sysadmin/admim_1’: Permission denied
rm: cannot remove ‘sysadmin/admim_2’: Permission denied
rm: cannot remove ‘sysadmin/admim_3’: Permission denied
rm: cannot remove ‘sysadmin/admim_4’: Permission denied
rm: cannot remove ‘sysadmin/admim_5’: Permission denied
[root@linuxtechi ~]#

要递归地取消属性设置,请使用以下命令

[root@linuxtechi ~]# chattr -R -i sysadmin

我的开源项目

酷瓜云课堂-开源知识付费解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 - github 仓库)

相关推荐

辞旧迎新,新手使用Containerd时的几点须知

相信大家在2020年岁末都被Kubernetes即将抛弃Docker的消息刷屏了。事实上作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使...

分布式日志系统ELK+skywalking分布式链路完整搭建流程

开头在分布式系统中,日志跟踪是一件很令程序员头疼的问题,在遇到生产问题时,如果是多节点需要打开多节点服务器去跟踪问题,如果下游也是多节点且调用多个服务,那就更麻烦,再者,如果没有分布式链路,在生产日志...

Linux用户和用户组管理

1、用户账户概述-AAA介绍AAA指的是Authentication、Authorization、Accounting,即认证、授权和审计。?认证:验证用户是否可以获得权限,是3A的第一步,即验证身份...

linux查看最后N条日志

其实很简单,只需要用到tail这个命令tail-100catalina.out输入以上命令,就能列出catalina.out的最后100行。...

解决linux系统日志时间错误的问题

今天发现一台虚拟机下的系统日志:/var/log/messages,文件时间戳不对,跟正常时间差了12个小时。按网上说的执行了servicersyslogrestart重启syslog服务,还是不...

全程软件测试(六十二):软件测试工作如何运用Linux—读书笔记

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你对Linux...

Linux运维之为Nginx添加错误日志(error_log)配置

Nginx错误日志信息介绍配置记录Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(nginx_core_module)的参数,该参数名字为error_log,可以放在不同的虚机主...

Linux使用swatchdog实时监控日志文件的变化

1.前言本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化。swatchdog(SimpleWATCHDOG)是一个简单的Perl脚本,用于监视类Unix系统(比如...

syslog服务详解

背景:需求来自于一个客户想将服务器的日志转发到自己的日志服务器上,所以希望我们能提供这个转发的功能,同时还要满足syslog协议。1什么是syslog服务1.1syslog标准协议如下图这里的fa...

linux日志文件的管理、备份及日志服务器的搭建

日志文件存放目录:/var/log[root@xinglog]#cd/var/log[root@xinglog]#lsmessages:系统日志secure:登录日志———————————...

运维之日志管理简介

日志简介在运维过程中,日志是必不可少的东西,通过日志可以快速发现问题所在。日志分类日志分类,对不同的日志进行不同维度的分析。操作系统日志操作系统是基础,应用都是在其之上;操作系统日志的分析,可以反馈出...

Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过

这两天沸沸扬扬的Log4j2漏洞门事件炒得热火朝天:突发!ApacheLog4j2报核弹级漏洞。。赶紧修复!!|Java技术栈|Java|SpringBoot|Spring...

Linux服务器存在大量log日志,如何快速定位错误?

来源:blog.csdn.net/nan1996jiang/articlep/details/109550303针对大量log日志快速定位错误地方tail/head简单命令使用:附加针对大量log日志...

Linux中查看日志文件的正确姿势,求你别tail走天下了!

作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于我这种小菜鸡来说,第一反应就是cat,tail,vi(或...

分享几款常用的付费日志系统,献给迷茫的你!

概述在前一篇文章中,我们分享了几款免费的日志服务器。他们各有各的特点,但是大家有不同的需求,有时免费的服务器不能满足大家的需要,下面推荐几款付费的日志服务器。1.Nagios日志服务器Nagio...

取消回复欢迎 发表评论: