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,一经查实,立即删除!

相关文章

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

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

linux使用操作[3]

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

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

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

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

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

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

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

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

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

新版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、开发做个万能…

设计模式 - 代理模式

目录 一. 前言 二. 实现 三. 静态代理和动态代理 一. 前言 代理模式&#xff08;Proxy Pattern&#xff09;&#xff0c;为某个对象提供一种代理以控制对对象的访问。即客户端可通过代理对象间接访问目标对象&#xff0c;同时可限制、增强、修改目标对象的一些特性。访问者不…

vue3 - 按需导入使用Element Plus图标、iconify图标、本地SVG/PNG图标

GitHub Demo 地址 在线预览 vue3 - 按需导入使用Element Plus图标、iconify图标、本地SVG/PNG图标 [GitHub Demo 地址](https://github.com/iotjin/jh-vue3-admin)[在线预览 ](https://iotjin.github.io/jh-vue3-admin) 一、iconify插件安装使用效果图 二、通过自动导入使用ic…

AIGC: 区块链与数据安全

随着国家将区块链纳入战略发展规划&#xff0c;数字经济蓬勃发展。近年来&#xff0c;数据的流通成为了实体经济赋能的关键&#xff0c;而在这一过程中&#xff0c;区块链技术和数据安全变得至关重要。 中国已经成为全球最大的数据体&#xff0c;每天产生大量数据。数字经济已…

软件测试人员必须知道的接口测试基础

一、首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能…

【Linux】——基操指令(一)

个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 LeetCode刷题 算法专栏 目录 前言 基操前的碎碎念 计算机的层状结构 基础指令 查看登录用户指令 查看用户指令 查看当前所处工作目录 清屏指令 基操指令 ls命令 cd命令 makdir指令 rmdir指令 &…

Mac电脑信息大纲记录软件 OmniOutliner 5 Pro for Mac中文

OmniOutliner 5 Pro是一款专业级的Mac大纲制作工具&#xff0c;它可以帮助用户更好地组织和管理信息&#xff0c;以及制作精美的大纲。以下是OmniOutliner 5 Pro的主要功能和特点&#xff1a; 强大的大纲组织和管理功能。OmniOutliner 5 Pro为用户提供了多层次的大纲结构&…

SpringBoot+MinIO8.0开箱即用的启动器

一、代码拉取及安装 1.码云地址 https://gitee.com/qiangesoft/rdp-starter/tree/master/rdp-starter-minio 2.本地安装 代码接入 1.引入依赖 <dependency><groupId>com.qiangesoft.rdp</groupId><artifactId>rdp-starter-minio</artifactId&g…

Learn Prompt- Midjourney案例:动漫设计

使用 Midjourney 生成动漫有两种方法&#xff1a;使用Niji模式或使用标准的 Midjourney 模型。Niji V5 是 Midjourney 的动漫专用模型。它建立在标准 Midjourney 模型的全新架构之上&#xff0c;更擅长生成命名的动漫角色。Niji V4于2023年12月发布&#xff0c;Niji V5于2023年…

邮件功能-python中的SMTP协议邮件发送

文章目录 一、SMTP协议邮件准备二、smtplib模块1.使用smtplib封装一个邮件类2.发送邮件 补充 一、SMTP协议邮件准备 需要一个smtp服务器 二、smtplib模块 smtplib模块是python自带的模块 1.使用smtplib封装一个邮件类 import smtplib import logging # 加入日志&#xff…

Java中的泛型

一. 泛型简介 泛型&#xff0c;即“参数化类型”。 作为Java中常用且重要的一个概念&#xff0c;泛型帮我们实现了代码重用&#xff0c;也保证了类型安全。但关于它的详细内容&#xff0c;目前很多同学还不清楚&#xff0c;所以接下来就带各位来学习这个重要的知识点。 背景 …

ArduPilot开源飞控之GCS显示DPS310异常问题

ArduPilot开源飞控之GCS显示DPS310异常问题 1. 源由2. 现象3. 分析3.1 Mission Planner3.2 Ardupilot3.3 AP_Baro分析3.4 AP_Baro定位 4. 修复5. 效果6. 参考资料7. 补充7.1 Ardupilot提交PR注意事项7.2 修复主要使用到的命令 1. 源由 2020年Ardupilot官网论坛就有开始讨论DPS…