当前位置: 首页 > news >正文

chattr:修改文件的特殊属性

chattr ​命令用于改变文件的特殊属性,也称为"chattr 属性"。这些属性可以提供额外的安全性和控制,如设置文件为不可修改、只允许在文件末尾添加数据等。

一、Linux 文件属性

文件属性是指与文件相关联的元数据,这些属性决定了文件的行为和访问权限。

常见属性

  1. 文件名(Filename) :文件的名称,通常包含字母、数字、下划线和某些特殊字符。
  2. 大小(Size) :文件占用的磁盘空间,通常以字节为单位。
  3. 类型(Type) :文件是普通文件、目录、链接文件、设备文件等。
  4. 权限(Permissions) :定义了用户(所有者)、组和其他用户对文件的访问权限(读、写、执行)。
  5. 所有者(Owner) :文件的所有者,通常是创建该文件的用户。
  6. 所属组(Group) :文件所属的用户组。
  7. 修改时间(Modified Time) :文件内容最后一次被修改的时间。
  8. 访问时间(Access Time) :文件最后一次被访问的时间。
  9. 创建时间(Creation Time) :文件被创建的时间(不是所有文件系统都支持)。

查看、修改属性:

  • ls -l:列出文件的详细信息,包括权限、所有者、大小、修改时间等。
  • chown:更改文件的所有者和/或所属组。
  • chmod:更改文件的权限。
  • touch:更改文件的访问时间和修改时间。
  • chattr:在支持扩展属性的文件系统上,更改文件的特殊属性。

特殊属性(收藏一下,用到再查):

  • a​:⭐Append-only。如果文件设置了这个属性,则只能追加数据到文件末尾,不能更改或删除现有的数据。
  • A​:No atime。设置这个属性后,文件访问时间(atime)不会被更新,即使文件被读取或修改。
  • c​:Compressed。如果文件设置了这个属性,当文件被删除时,文件系统会尝试在文件被完全删除之前对其进行压缩。
  • C​:Compressed when writing。如果文件设置了这个属性,当文件被写入时,文件系统会尝试在写入操作完成之前对其进行压缩。
  • d​:No dump。如果文件设置了这个属性,文件系统在备份操作时不会将文件包含在备份中。
  • i​:⭐Immutable。如果文件设置了这个属性,文件不能被删除、修改或重命名。
  • j​:No journal。如果文件设置了这个属性,文件系统不会在将数据写入磁盘之前将数据写入日志。
  • p​:Project ID。如果文件设置了这个属性,文件将被标记为与特定的项目ID相关联。
  • s​:Sequential access。如果文件设置了这个属性,文件系统会假设文件内容是顺序读取的,并可能优化读取操作。
  • S​:No synchronous updates。如果文件设置了这个属性,文件系统不会立即将数据写入磁盘,而是稍后写入。
  • t​:Set time stamp。如果文件设置了这个属性,文件系统会忽略时间戳的更改。
  • u​:Undeletable。如果文件设置了这个属性,文件不能被删除。
  • F​:😐No force deletion。如果文件设置了这个属性,文件系统在删除文件时不会强制删除。
  • x​:😐No execution。如果文件设置了这个属性,文件不能被执行。

请注意,并不是所有的文件系统都支持所有这些属性。例如,ext2和ext3文件系统不支持a​、c​、d​、i​、j​、p​、s​和u​属性,而ext4文件系统支持所有这些属性,除了F​和x​。

二、chattr 命令用法

格式:

chattr [选项] [+/-属性] 文件名

常用选项:

  • -R​:递归地处理目录及其内容。
  • -f​:强制执行操作,即使文件被设置为不可更改。
  • -v​:显示详细信息,指示发生的操作。

添加文件 i 属性

chattr +i file

移除文件 i 属性

chattr -i file

查看文件属性

lsattr filename

递归处理目录及其内容

chattr -R +i directory

强制执行操作

chattr -f +a filename

显示详细信息

chattr -v +s filename

三、chattr 实例

  1. 设置文件不可修改

    chattr +i file.txt
    

    这会使得file.txt​文件不可被修改、删除或重命名,即使是root用户也不例外。

  2. 移除文件的不可修改属性

    chattr -i file.txt
    

    这会移除file.txt​文件的不可修改属性,之后就可以正常编辑、删除或重命名文件了。

  3. 设置目录及其内容不可修改

    chattr -R +i /path/to/directory
    

    使用-R​递归选项,这会使得指定目录及其所有子文件和子目录都不可被修改。

  4. 仅允许添加文件到目录

    chattr +a /path/to/directory
    

    设置+a​属性后,用户只能向该目录添加文件,不能删除或重命名其中的文件。

  5. 防止修改文件内容但允许删除
    虽然没有直接的属性可以设置这个行为,但是可以通过组合使用+i​和+a​来实现。首先设置+a​属性,然后对文件设置+i​属性,这样文件内容不可修改,但可以通过删除文件的方式来移除文件。

  6. 保护系统关键文件

    chattr +i /etc/passwd
    chattr +i /etc/shadow
    

    保护密码文件不被非授权修改,增强系统安全性。

  7. 防止日志文件被意外清除

    chattr +a /var/log/messages
    

    设置+a​属性后,日志文件只能被追加内容,不能被清空或删除。

  8. 批量设置文件属性
    可以结合find​命令来批量设置文件属性,例如,设置所有.txt​文件为不可修改:

    find /path/to/search -type f -name "*.txt" -exec chattr +i {} \;
    
  9. 查看文件属性
    虽然不是chattr​的功能,但常与chattr​配合使用的lsattr​命令可以用来查看文件属性:

    lsattr file.txt
    

使用chattr​时需要注意,这个命令只适用于ext2、ext3和ext4文件系统。对于其他文件系统,如XFS、Btrfs等,chattr​可能不起作用或部分功能不可用。

相关文章:

chattr:修改文件的特殊属性

​chattr ​命令用于改变文件的特殊属性,也称为"chattr 属性"。这些属性可以提供额外的安全性和控制,如设置文件为不可修改、只允许在文件末尾添加数据等。 ‍ 一、Linux 文件属性 文件属性是指与文件相关联的元数据,这些属性决…...

vue-router 在新的标签页打开链接/路由

前言 vue-router 在新的标签页打开链接/路由,由于官方没有提供对链接target属性的配置,要实现这个需求,需要自行实现,这里提供几个方案供参考。 调用 API vue-router 的路由实例除了常见的 push, replace, go 等接口&#xff0…...

Ansys HFSS的边界条件与激励端口

本文将介绍HFSS边界条件、激励端口,然后重点介绍连接器信号完整性仿真应用最多的波端口(wave port)及其尺寸设置要点。 HFSS (电磁仿真)边界条件 HFSS中所谓的边界并非真正意义上的边界,边界条件是指定问题区域和对象边缘的场行为接口。在HFSS的背景下,边界的存在主要有两个…...

C++:线程库

C&#xff1a;线程库 threadthreadthis_threadchrono 引用拷贝问题 mutexmutextimed_mutexrecursive_mutexlock_guardunique_lock atomicatomicCAS condition_variablecondition_variable thread 操作线程需要头文件<thread>&#xff0c;头文件包含线程相关操作&#xf…...

StarRocks实时分析数据库的基础与应用

1. 什么是 StarRocks&#xff1f; StarRocks 是一款开源的在线分析处理&#xff08;OLAP&#xff09;数据库&#xff0c;专为实时、低延迟的分析场景而设计。它以其大规模并行处理&#xff08;MPP&#xff09;架构和列式存储设计&#xff0c;极大地提高了查询性能和处理效率。…...

golang学习笔记17——golang使用go-kit框架搭建微服务详解

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

git update-ref

git update-ref 是一个低级别的 Git 命令&#xff0c;用于直接更新 Git 的引用&#xff08;refs&#xff09;。这个命令可以用来设置或删除分支、标签或其他引用的值&#xff0c;通常用于脚本或复杂的 Git 操作中。 基本用法 git update-ref <ref> <new-value> […...

学习使用在windows系统上安装nodejs以及环境配置图文教程整理

学习使用在windows系统上安装nodejs以及环境配置图文教程整理 Node.js 介绍Node.js 安装1、Node.js下载2、Node.js安装3、Node.js测试4、Node.js安装目录5、Node.js环境变量配置6、配置镜像站&#xff0c;提升速度7、检查镜像站配置8、测试环境变量是否生效9、安装cnpm Node.js…...

Hexo框架学习——从安装到配置

第一章 Hexo入门 Hexo 是一个快速、简洁且高效的博客框架。 1.1 Hexo的下载与安装 1.1.1 Hexo下载 在下载Hexo之前&#xff0c;我们需要确保电脑上已经安装好以下软件&#xff1a; Node.js (Node.js 版本需不低于 10.13&#xff0c;建议使用 Node.js 12.0 及以上版本) Git…...

搭建Windows下的Rust开发环境

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 2.1.1 安装vs_buildtools 在Windows系列操作系统中&#xff0c;Rust开发环境需要依…...

[linux 驱动]misc设备驱动详解与实战

目录 1 描述 2 结构体 2.1 miscdevice 2.2 file_operations 3 注册和注销 3.1 misc_register 3.2 misc_deregister 4 解析 misc 内核源码 4.1 核心代码 4.2 函数解析 4.2.1 class_create_file 4.2.2 class_destroy 4.2.3 register_chrdev 5 示例 5.1 简单示例 5…...

C/S架构与B/S架构的适用场景分析

C/S架构&#xff08;客户端/服务器架构&#xff09;与B/S架构&#xff08;浏览器/服务器架构&#xff09;在适用场景上各有特点&#xff0c;主要取决于应用的具体需求、用户群体、系统维护成本、跨平台需求等因素。 一、C/S架构的适用场景 1、高性能与交互性要求高的应用&…...

AI论文精读笔记-Generative Adversarial Nets(GAN)

1. 论文基本信息 论文标题&#xff1a;Generative Adversarial Nets 作者&#xff1a;Ian J. Goodfellow,∗ Jean Pouget-Abadie,† Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair,‡ Aaron Courville, Yoshua Bengio 发表时间和期刊&#xff1a;2014.06&#xf…...

Redis(主从复制、哨兵模式、集群)概述及部署测试

目录 一、Redis 主从复制 1.1、Redis 主从复制概念 1.2、主从复制的作用 1.3、主从复制流程 1.4、搭建Redis 主从复制 二、Redis 哨兵模式 2.1、Redis 哨兵模式概念 2.2、哨兵模式原理 2.3、哨兵模式的作用 2.4、哨兵模式的结构 2.5、故障转移机制 2.6、主节点的选…...

jmeter吞吐量控制器

一、吞吐量控制器作用&#xff1a;旨在混合场景中&#xff0c;控制样本数&#xff0c;通常在比例场景中使用 吞吐量控制器提供了两种控制模式&#xff1a; 百分比执行&#xff08;Percent Executions&#xff09;&#xff1a; 吞吐量控制器会根据配置的百分比来决定其下的作用…...

【GBase 8c V5_3.0.0 分布式数据库常用几个SQL】

1.检查应用连接数 以管理员用户 gbase&#xff0c;登录数据库主节点。 接数据库&#xff0c;并执行如下 SQL 语句查看连接数。 SELECT count(*) FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;2.查看空闲连接 查看空闲(state 字段为”idle”)且长时间没有更…...

grep,wc命令

一.grep命令 1.grep命令的作用 我们通过grep命令从文件中通过关键字过滤文件行 2.grep命令的语法 grep [-n] 关键字 文件路径 其中grep作为命令主体 -n选项表示在结果中显示匹配的行的行号 关键字为必填参数&#xff0c;表示过滤的关键字&#xff08;可以使用""…...

NLP-文本分类文献阅读-前置基础-词汇解释-通俗易懂-9月份-学习总结

目录 迁移学习 特征选择 特征工程 朴素贝叶斯分类方法 支持向量机 K-最近邻&#xff08;K-Nearest Neighbors, KNN&#xff09; 特征向量稀疏 卷积神经网络 循环神经网络 图神经网络 TextCNN 动态 K 最大池化 One-hot BOW Word2vec 池化&#xff08;Pooling&#xff09; 全连接…...

Conda安装和使用(ubuntu)

以下是关于如何使用 Conda 的详细指南。这将涵盖从安装到基本操作的各个方面&#xff0c;帮助您高效地管理Python环境和依赖项。 Conda 简介 Conda 是一个跨平台的开源包管理器和环境管理器&#xff0c;最初由 Anaconda 开发&#xff0c;广泛用于数据科学、机器学习和科学计算…...

JavaEE:文件操作

文章目录 文件操作和IO文件系统操作File介绍属性构造方法方法 代码演示前四个listmkdirrenameTo 文件操作和IO 文件系统操作 创建文件,删除文件,创建目录,重命名… Java中有一个类,可以帮我们完成上述操作. 这个类叫做File类. File介绍 属性 这个表格描述了文件路径的分隔符…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...