chattr 命令
📅
2017 年 3 月 19 日
📖
阅读时间 1 分钟
一个经常被忽视的命令
对于我个人来说,这个命令其实也不是特意去找来用的。
前段日子,在尝试使用 ss-panel 来搭建 FzVPN 的前端的时候,发现在用mv
命令将 git clone 的文件夹文件转移到 vhost 文件夹的时候,总是没法将配置文件转移。
这让我觉得很奇怪,而且还无法通过rm -rf
来删除。即使处于 root 权限之下,也会提示操作权限不够的错误。经过几番查找,最后尝试使用 chattr 命令去除了 i 属性成功转移。学习命令的同时,将查到的一些资料写下来备忘。
命令详解
命令格式
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 信息从而来决定下一步操作。
lsattr .env
在确认文件具有i属性的情况下,我们用 chattr 来去除i属性以达到随意操作该文件的目的。
chattr -i .env