温馨提示×

linux如何锁定文件防删

小樊
84
2026-10-04 13:48:47
栏目: 智能运维

在 Linux 下“锁定文件防删”常见有几种思路,取决于你是防自己误删、防其他用户删,还是防 root 删。下面按实用程度说明。


一、最常用:改文件属性(防误删/防普通删除)

1. 使用 chattr +i( immutable,强烈推荐)

sudo chattr +i /path/to/file

效果:

  • 任何用户(包括 root)都不能:
    • 删除
    • 修改
    • 重命名
    • 写入

查看状态:

lsattr /path/to/file

解除锁定:

sudo chattr -i /path/to/file

✅ 适合:重要配置文件、日志、脚本


2. 使用 chattr +a(append-only,只能追加)

sudo chattr +a /path/to/file

效果:

  • 不能删除
  • 不能修改已有内容
  • 只能追加写入(适合日志)

解除:

sudo chattr -a /path/to/file

二、权限层面防删(普通用户有效,root 无效)

3. 修改文件权限

chmod 000 file
chown root:root file

或只读:

chmod 444 file

⚠️ 注意:

  • root 仍然可以删
  • 如果文件在可写目录,别人仍可删文件本身(见下)

4. 锁目录(防删文件本身)

文件能不能删,取决于所在目录的写权限:

chmod 555 /path/to/dir

这样:

  • 不能在该目录创建/删除文件
  • 但仍可改文件内容(如果文件本身可写)

结合使用效果更好:

chmod 555 /dir
chmod 444 /dir/file

三、防止 root 删除(只有 chattr 能做到)

✅ 只有 chattr +i 能防 root 删除 ❌ 权限、ACL、sudo 都无法阻止 root


四、进阶方案(特殊场景)

5. 使用 ACL(细粒度控制)

setfacl -m u:username:r-- file

6. 只读挂载(系统级)

mount -o remount,ro /partition

7. 文件加锁(程序级)

  • flock
  • 仅防止程序并发写,不防删除

总结推荐

需求 推荐方式
防误删 chattr +i
日志防改 chattr +a
防普通用户 权限 + 目录锁
防 root 只能 chattr +i

如果你是服务器防护 / 容器 / 特定发行版,可以告诉我场景,我可以给更精确的方案。

0 踩