0%

chattr 命令

一个经常被忽视的命令

对于我个人来说,这个命令其实也不是特意去找来用的。
前段日子,在尝试使用 ss-panel 来搭建 FzVPN 的前端的时候,发现在用mv命令将 git clone 的文件夹文件转移到 vhost 文件夹的时候,总是没法将配置文件转移。
这让我觉得很奇怪,而且还无法通过rm -rf来删除。即使处于 root 权限之下,也会提示操作权限不够的错误。经过几番查找,最后尝试使用 chattr 命令去除了 i 属性成功转移。学习命令的同时,将查到的一些资料写下来备忘。

命令详解

命令格式

1
chattr [ -RVf ] [ -v version ] [ mode ] files

个人记忆方式:change-attribute

文件属性

属性值 说明
a 让文件或目录仅供附加用途
A 锁定文件或目录的Access Time
b 不更新文件或目录的最后存取时间
c 将文件或目录压缩后存放
d 将文件或目录排除在倾倒操作之外
i 不得任意更动文件或目录
j 文件在写入时会先被记录
s 保密性删除文件或目录
S 即时更新文件或目录
u 预防意外删除

命令参数

参数 说明
-R 递归处理,将指令目录下的所有文件及子目录一并处理
-v<版本编号> 设置文件或目录版本
-V 显示指令执行过程
+<属性> 开启文件或目录的该项属性
-<属性> 关闭文件或目录的该项属性
=<属性> 指定文件或目录的该项属性

常见使用

假设有一个文件为「.env」,采用 root 权限删除时提示权限不足,那么基本上就是要解除权限。
我们可以通过lsattr命令(List-attribute)来查看文件的 attr 信息从而来决定下一步操作。

1
lsattr .env

在确认文件具有i属性的情况下,我们用 chattr 来去除i属性以达到随意操作该文件的目的。

1
chattr -i .env
  • 本文作者: Zhou Fang
  • 本文链接: https://fang2hou.com/chattr-command/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC 许可协议。转载请注明出处!