千家信息网

怎么在Linux系统中防止文件和目录被意外的删除或修改

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了怎么在Linux系统中防止文件和目录被意外的删除或修改,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux中防止
千家信息网最后更新 2026年11月01日怎么在Linux系统中防止文件和目录被意外的删除或修改

这篇文章主要介绍了怎么在Linux系统中防止文件和目录被意外的删除或修改,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Linux中防止文件和目录被意外删除和修改

默认,chattr 命令在大多数现代 Linux 操作系统中是可用的。

默认语法是:

chattr [operator] [switch] [file]

chattr 具有如下操作符:

  • 操作符 +,追加指定属性到文件已存在属性中

  • 操作符 -,删除指定属性

  • 操作符 =,直接设置文件属性为指定属性

chattr 提供不同的属性,也就是 aAcCdDeijsStTu。每个字符代表一个特定文件属性。

  • a – 只能向文件中添加数据

  • A – 不更新文件或目录的***访问时间

  • c – 将文件或目录压缩后存放

  • C – 不适用写入时复制机制(CoW)

  • d – 设定文件不能成为 dump 程序的备份目标

  • D – 同步目录更新

  • e – extend 格式存储

  • i – 文件或目录不可改变

  • j – 设定此参数使得当通过 mount 参数:data=ordered 或者 data=writeback 挂载的文件系统,文件在写入时会先被记录在日志中

  • P – project 层次结构

  • s – 安全删除文件或目录

  • S – 即时更新文件或目录

  • t – 不进行尾部合并

  • T – 顶层目录层次结构

  • u – 不可删除

在本教程中,我们将讨论两个属性的使用,即 a、i ,这个两个属性可以用于防止文件和目录的被删除。这是我们今天的主题,对吧?来开始吧!

防止文件被意外删除和修改

我先在我的当前目录创建一个file.txt文件。

$ touch file.txt

现在,我将给文件应用 i 属性,让文件不可改变。就是说你不能删除或修改这个文件,就算你是文件的拥有者和 root 用户也不行。

$ sudo chattr +i file.txt

使用lsattr命令检查文件已有属性:

$ lsattr file.txt

输出:

----i---------e---- file.txt

现在,试着用普通用户去删除文件:

$ rm file.txt

输出:

# 不能删除文件,非法操作rm: cannot remove 'file.txt': Operation not permitted

我来试试 sudo 特权:

$ sudo rm file.txt

输出:

# 不能删除文件,非法操作rm: cannot remove 'file.txt': Operation not permitted

我们试试追加写内容到这个文本文件:

$ echo 'Hello World!' >> file.txt

输出:

# 非法操作bash: file.txt: Operation not permitted

试试 sudo 特权:

$ sudo echo 'Hello World!' >> file.txt

输出:

# 非法操作bash: file.txt: Operation not permitted

你应该注意到了,我们不能删除或修改这个文件,甚至 root 用户或者文件所有者也不行。

要撤销属性,使用 -i 即可。

$ sudo chattr -i file.txt

现在,这不可改变属性已经被删除掉了。你现在可以删除或修改这个文件了。

$ rm file.txt

类似的,你能够限制目录被意外删除或修改,如下一节所述。

防止目录被意外删除和修改

创建一个 dir1 目录,放入文件 file.txt。

$ mkdir dir1 && touch dir1/file.txt

现在,让目录及其内容(file.txt 文件)不可改变:

$ sudo chattr -R +i dir1

命令中,

  • -R – 递归使 dir1 目录及其内容不可修改

  • +i – 使目录不可修改

现在,来试试删除这个目录,要么用普通用户,要么用 sudo 特权。

$ rm -fr dir1$ sudo rm -fr dir1

你会看到如下输出:

# 不可删除'dir1/file.txt':非法操作rm: cannot remove 'dir1/file.txt': Operation not permitted

尝试用 echo 命令追加内容到文件,你成功了吗?当然,你做不到。

撤销此属性,输入:

$ sudo chattr -R -i dir1

现在你就能想平常一样删除或修改这个目录内容了。

防止文件和目录被意外删除,但允许追加操作

我们现已知道如何防止文件和目录被意外删除和修改了。接下来,我们将防止文件被删除但仅仅允许文件被追加内容。意思是你不可以编辑修改文件已存在的数据,或者重命名这个文件或者删除这个文件,你仅可以使用追加模式打开这个文件。

为了设置追加属性到文件或目录,我们像下面这么操作:

针对文件:

$ sudo chattr +a file.txt

针对目录:

$ sudo chattr -R +a dir1

一个文件或目录被设置了 a 这个属性就仅仅能够以追加模式打开进行写入。

添加些内容到这个文件以测试是否有效果。

$ echo 'Hello World!' >> file.txt$ echo 'Hello World!' >> dir1/file.txt

查看文件内容使用cat命令

$ cat file.txt$ cat dir1/file.txt

输出:

Hello World!

你将看到你现在可以追加内容。就表示我们可以修改这个文件或目录。

现在让我们试试删除这个文件或目录。

$ rm file.txt

输出:

# 不能删除文件'file.txt':非法操作rm: cannot remove 'file.txt': Operation not permitted

让我们试试删除这个目录:

$ rm -fr dir1/

输出:

# 不能删除文件'dir1/file.txt':非法操作rm: cannot remove 'dir1/file.txt': Operation not permitted

删除这个属性,执行下面这个命令:

针对文件:

$ sudo chattr -R -a file.txt

针对目录:

$ sudo chattr -R -a dir1/

现在,你可以想平常一样删除或修改这个文件和目录了。

更多详情,查看 man 页面。

man chattr

感谢你能够认真阅读完这篇文章,希望小编分享的"怎么在Linux系统中防止文件和目录被意外的删除或修改"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

文件 目录 属性 内容 输出 意外 命令 系统 操作符 用户 篇文章 特权 更新 不行 平常 普通 两个 参数 层次 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网黑科技 国智互联网科技 互联网核心科技是什么 互联网科技公司怎么样 嘟嘟瓜互联网科技 科技创新互联网企业 郑州华宇互联网科技 上海卓越科技 互联网 科技赋能互联网健康 剑昆互联网络科技有限公司临桂 上海宁丞科技互联网 江阴互联网智能科技产品进口 乌苏新华互联网科技做什么的 华夏恒生科技与互联网科技 互联网金融科技名词解释 互联网时代的科技公司 合肥互联网科技公司公章图片 浙南科技城互联网大厦招聘 现代互联网科技公司 上海卓越科技互联网 科技大学互联网专业好不好 广州慧亚互联网科技怎么样 互联网公司科技股 新兴科技互联网创新大赛颁奖典礼 山东星卡互联网科技有限公司官网 银川新华互联网科技学校原画 科技互联网公司两年变化 保山浩联互联网科技有限公司 杭州科技互联网公司有哪些
0