Linux命令之chattr命令

一、chattr命令简介

  chattr命令用于更改文件或目录的属性,包括不可修改属性、同步属性、追加属性、无尽属性、压缩属性、无尽属性、不可删除属性等。chattr命令只能由超级用户或文件的所有者使用。

二、chattr命令使用示例

1、给文件设置版本

  -v参数设置版本信息只在extX(ext4…)文件系统下支持,xfs文件系统设置文件版本时会报错对设备不适当的 ioctl 操作。

[root@s153 ~]# chattr -v 2 -V hi.txt
chattr 1.41.12 (17-May-2010)
hi.txt的标志被设为 -------------e-
Version of hi.txt set as 2
[root@s152 test]# chattr -v 2 -V a.txt
chattr 1.42.9 (28-Dec-2013)
a.txt的标志被设为 ----------------
Version of a.txt set as 2
chattr: 对设备不适当的 ioctl 操作 while setting version on a.txt

2、递归设置目录下文件属性

[root@s152 test]# chattr -R -a -V level1-1/
chattr 1.42.9 (28-Dec-2013)
level1-1/的标志被设为 ----------------
level1-1//level2-1的标志被设为 ----------------
level1-1//level2-2的标志被设为 ----------------
level1-1//level2-2/ccc.txt的标志被设为 ----------------
level1-1//level2-3的标志被设为 ----------------
level1-1//bb.txt的标志被设为 ----------------

3、使用-V参数显示指令执行过程

[root@s152 test]# chattr -R -a -V level1-1
chattr 1.42.9 (28-Dec-2013)
level1-1的标志被设为 ----------------
level1-1/level2-1的标志被设为 ----------------
level1-1/level2-2的标志被设为 ----------------
level1-1/level2-2/ccc.txt的标志被设为 ----------------
level1-1/level2-3的标志被设为 ----------------
level1-1/bb.txt的标志被设为 ----------------

4、增加一个属性

[root@s152 test]# lsattr a.txt
---------------- a.txt
[root@s152 test]# chattr +i a.txt
[root@s152 test]# lsattr a.txt
----i----------- a.txt

5、删除一个属性

[root@s152 test]# chattr -i -V a.txt
chattr 1.42.9 (28-Dec-2013)
a.txt的标志被设为 ----------------
[root@s152 test]# lsattr a.txt
---------------- a.txt

6、指定文件属性

  使用=指定文件的属性,实际上文件支持的各属性之间有部分是冲突的,所以很少用到=参数来指定属性,常用±参数来增加或者减少一个属性。

[root@s152 test]# chattr =iaA -V a.txt
chattr 1.42.9 (28-Dec-2013)
a.txt的标志被设为 ----ia-A--------

三、chattr命令语法及参数说明

1、命令语法

#chattr [参数] 文件或者目录
#chattr ±=[属性] 文件或者目录
#chattr [参数] [属性] 文件或者目录

2、参数说明

参数参数说明
-R递归处理,将指令目录下的所有文件及子目录一并处理
-v<版本编号>设置文件或目录版本,此参数只适用于extx文件系统
-V显示指令执行过程
-f抑制大多数错误信息
+<属性>开启文件或目录的该项属性
-<属性>关闭文件或目录的该项属性
=<属性>指定文件或目录的该项属性

3、属性说明

  当前主流Linux内核中实现的ext2、ext3和ext4文件系统不支持“c”、“s”和“u”属性。实际上这些属性中常用只有a和i,追加属性长用于日志文件,保证日志文件不会被删除,只允许追加日志记录;i属性用于锁定重要的配置文件,避免误删除或者修改等。

属性属性说明
a该属性只允许在文件末尾添加数据,不允许修改或删除文件的内容。
A设置该属性时,文件atime时间不再更新。
c默认将文件或目录进行压缩。
C设置了“C”属性的文件将不会进行写时复制更新。只有在执行写时复制的文件系统上才支持此标志
d当进行文件系统备份时,不备份该文件或目录。
D当修改具有“D”属性集的目录时,更改将同步写入磁盘;这相当于应用于文件子集的“dirsync”装载选项。要求内核版本2.5.19以上
i禁止对文件或目录进行任何修改操作,包括修改、删除、重命名等。
j允许文件系统支持日志功能,只在ext3、ext4环境下支持。
s当文件被删除时,将其内容清零。
S当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“sync”装载选项
t让文件系统支持尾部合并(tail-merging),只有ext2和ext3支持尾部合并
T具有“T”属性的目录将被视为目录层次结构的顶部。这是对ext3和ext4使用的块分配器的一个提示。
u删除具有“u”属性集的文件时,将保存其内容。这允许用户请求取消删除。

四、chattr命令使用实践

1、使用i属性锁定/etc/shadow文件,保证系统用户安全

  使用i属性锁定文件后即使是root用户也无法直接删除、修改、更新,需要先解锁才可以对文件进行操作。编辑被i锁定的文件会提示是只读文件,即使使用wr!也无法完成保存,对文件的任何更新、修改操作都必须再解锁后执行。我们在完成操作系统用户等配置之后,可以锁定/etc/shadow文件,用于保障系统账户安全。
在这里插入图片描述

[root@s152 test]# chattr +a a.txt
[root@s152 test]# rm -rf a.txt
rm: 无法删除"a.txt": 不允许的操作
[root@s152 test]# echo “This is add message test” >> a.txt
-bash: a.txt: 权限不够
[root@s152 test]# vim a.txt

2、使用a属性锁定/var/log/messages,防止日志文件被篡改

  使用a属性控制/var/log/messages文件只能追加,不允许删除、覆盖等操作,可以保证系统日志的的安全。
在这里插入图片描述

[root@s152 test]# chattr +a /var/log/messages
[root@s152 test]# lsattr /var/log/messages
-----a---------- /var/log/messages

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/88687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net core DI注入,构造函数含有动态参数

使用.net core 开发的时候我们使用依赖注入来实例化需要的服务等&#xff0c;有时候这个服务类的构造函数是有参数的&#xff0c;此时想使用依赖注入就变得很麻烦。我们可以采用工厂模式&#xff0c;去构造demo如下 person类 namespace DIDynamicConstructorParams.TestDI {p…

12KM02E-V0002 3EGM030300R0002 模块化和加固的边缘计算加速

12KM02E-V0002 3EGM030300R0002 模块化和加固的边缘计算加速 随着边缘人工智能解决方案的兴起&#xff0c;对实时洞察和自主决策的需求显著增长。这也带来了对变革性技术的高度需求&#xff0c;这些技术可以在坚固的边缘支持和提供最佳性能。为了应对技术革命&#xff0c;Prem…

linux使用操作[3]

文章目录 版权声明环境变量$符号自行设置环境变量 上传、下载rz、sz命令 压缩、解压tar命令压缩tar解压zip 命令压缩文件unzip 命令解压文件 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利人…

Miniconda创建paddlepaddle环境

1、conda env list 2、conda create --name paddle_env python3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 3、activate paddle_env 4、python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 5、pip install "p…

了解MES:提升制造业的效率与竞争力

今天我将和大家分享关于MES&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;的知识。随着制造业的发展和变革&#xff0c;MES作为一个关键的信息技术工具&#xff0c;已经成为许多企业提升效率和竞争力的重要策略之一。 MES的定义与作用 MES是…

【iOS逆向与安全】好用的一套 TCP 类

初始化 //页面 %hook xxxxxxxViewController//- (void)viewWillAppear:(BOOL)animated{ //NSLog("View Will Appear&#xff0c;再次进入刷新"); - (void)viewDidLoad{//启动tcp[[Xddtcp sharedTcpManager] connectServer] ;} 发送数据 //发送数据 [[Xddtcp shared…

点云从入门到精通技术详解100篇-基于全景图的室内场景点云补全方法(续)

目录 3.3 模型训练及实验评估 3.3.1 模型训练 3.3.2实验评估 4 基于自

Redis集群架构搭建——主从、哨兵、集群

上一篇文章Ubuntu上通过源码方式安装Redis已经介绍了如何安装redis&#xff0c;在这篇文章中&#xff0c;将会教大家搭建Redis的几种高可用的架构&#xff1a;主从架构、哨兵集群、Cluster集群。 本篇文章使用的redis版本为6.2.13&#xff0c;不同版本的配置可能有略微的区别&a…

nodejS+vue网上招聘系统

求职者模块 系统的求职者模块可以分为 ①个人信息管理&#xff0c;可以更改个人用户名&#xff0c;密码等基本信息&#xff1b; ②岗位查询&#xff0c;可以根据岗位类型查询到该类型的岗位列表&#xff0c;并进行应聘申请。 ③应聘申请管理&#xff0c;可以查询到自己的应聘申…

数学建模:智能优化算法及其python实现

数学建模:智能优化算法及其python实现 智能优化算法简介差分进化算法(Differential Evolution,DE)遗传算法(Genetic Algorithm,GA)粒子群优化算法(Particle Swarm Optimization,PSO)模拟退火算法(Simulated Annealing,SA)蚁群算法(Ant Colony Optimization,ACO)…

HTTP代理SSL连接:保障网络安全的重要协议

HTTP代理SSL连接是一种网络安全协议&#xff0c;它结合了HTTP代理和SSL/TLS协议&#xff0c;用于在客户端和服务器之间建立加密通信通道。HTTP代理SSL连接可以保护数据在传输过程中不被窃听、篡改或伪造&#xff0c;从而确保数据的完整性、保密性和可靠性。在本文中&#xff0c…

目前很火的养猫微信小程序源码带流量主+搭建教程

目前很火的养猫微信小程序源码带流量主搭建教程。 搭建教程 进入小程序我们下载开发者工具 开发者工具安装好了 我们就把前端源码导入进开发者工具中 这里的APPID我们填写自己的小程序APPID 修改siteinfo.js里的uniacid和acid 这两个ID在刚才后端添加的小程序那里看 在把…

【前端打怪升级日志之微前端框架篇】微前端qiankun框架子应用间跳转方法

参考链接qiankun官网&#xff1a;微应用之间如何跳转&#xff1f; 1.主应用、子应用路由都是hash模式 主应用根据 hash 来判断微应用&#xff0c;无需考虑该问题 2.主应用根据path判断子应用 方法实现适用条件参数传递存在问题a标签跳转<a href"/toA"></…

新版WordPress系统文章自动采集插件/Auto Post pro完美运行版/多线程采集(wp自动采集)

源码介绍&#xff1a; 最新版WordPress系统文章自动采集插件&#xff0c;它是一款帮助用户提供方便快捷的文章自动采集方案的插件。WordPress自动采集插件&#xff0c;让内容采集变得高效便捷。作为Auto Post pro完美运行版&#xff0c;这里分享的是WordPress文章采集插件Auto…

TG Pro for Mac强大的硬件温度检测、风扇控制工具测评

无论您是旧机型还是全新MacBookPro&#xff0c;使用TG Pro均可延长Mac的使用寿命。小编就给大家详细说一下使用TG Pro的体验~ 打开TG Pro&#xff0c;您会注意到的第一件事是带有大量温度&#xff0c;风扇速度和诊断信息的主窗口。 这是您将与之交互的应用程序的主要区域之一。…

Selenium自动化测试 —— 通过cookie绕过验证码的操作!

验证码的处理 对于web应用&#xff0c;很多地方比如登录、发帖都需要输入验证码&#xff0c;类型也多种多样&#xff1b;登录/核心操作过程中&#xff0c;系统会产生随机的验证码图片&#xff0c;进行验证才能进行后续操作 解决验证码的方法如下&#xff1a; 1、开发做个万能…

js实现数组去重方式(12种方法)

目录 1、filter indexOf2、for object3、for includes4、for splice5、filter indexOf6、Map7、Set8、set Array.from9、sort 排序10、for findIndex11、双重for循环12、reduce 1、filter indexOf 数组去重&#xff1a;利用 filter 过滤 配合 indexOf 查找元素 var a…

Redis 是什么?

Redis是一种基于内存的数据库&#xff0c;数据的读写都是在内存中完成的&#xff0c;因此读写速度非常的快&#xff0c;常用于缓存&#xff0c;消息队列&#xff0c;分布式锁等场景。 Redis 在高并发项目中&#xff0c;担任着非常重要的作用&#xff0c;扛高并发的&#xff0c;…

docker+mysql+flask+redis+vue3+uwsgi+docker部署

首先拉取mysql的镜像&#xff0c;这里用的mysql5.7.6 docker pull mysql:5.7.6 镜像拉取完成后启动&#xff1a; docker run --name my-mysql -d -p 3306:3306 -v /usr/local/my-mysql/conf:/etc/mysql/conf.d -v /usr/local/my-mysql/data:/var/lib/mysql -e MYSQL_ROOT_PA…

layui子界面操作数据后主界面刷新怎么操作

项目场景&#xff1a; layui子界面进行了增删改查需要在关闭后让主界面刷新 解决方案&#xff1a; layui的admin.open方法支持传入回调函数,主要有以下几种回调: yes回调 用于确定/提交按钮点击后的回调参数: index,layero admin.open({ yes: function(index, layero){ /…