Linux chattr命令详解

Linux chattr命令详解教程

Linux 中的 chattr 命令,用来修改文件或目录的隐藏属性,只有 root 用户可以使用。其中,+ 表示给文件或目录添加属性,- 表示移除文件或目录拥有的某些属性,= 表示给文件或目录设定一些属性。

Linux chattr属性

chattr 命令共有八种模式,如下表:

模式 描述
a 让文件或目录仅供附加用途。
b 不更新文件或目录的最后存取时间。
c 将文件或目录压缩后存放。
d 将文件或目录排除在倾倒操作之外。
i 不得任意更动文件或目录。
s 保密性删除文件或目录。
S 即时更新文件或目录。
u 预防意外删除。

Linux chattr命令详解

功能

chattr 命令用于改变文件属性。

语法

chattr [+-=] [属性] file

参数

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

Linux chattr命令常用实例

实例

实例 描述
chattr +i file 文件不能删除,不能更改,不能移动。
chattr +a file 让某个文件只能往里面追加数据,但不能删除。
chattr -i file 表示解除文件锁定。

锁定文件

语法

chattr +i file

案例

我们使用 touch 命令,创建一个 haicoder.txt 文件,具体命令如下:

touch haicoder.txt

运行后,终端输出如下:

81_Linux chattr命令详解.png

现在,我们使用 ls 命令,查看文件 haicoder.txt 的权限,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

82_Linux chattr命令详解.png

现在,我们使用 chattr 命令为其增加 i 权限,具体命令如下:

chattr +i haicoder.txt

运行后,终端输出如下:

83_Linux chattr命令详解.png

现在,我们再次使用 lsattr 命令,查看其权限,具体命令如下:

lsattr haicoder.txt

运行后,终端输出如下:

84_Linux chattr命令详解.png

我们看到,现在文件 haicoder.txt 有 i 属性,现在,我们使用 rm 命令,删除该文件,具体命令如下:

rm -rf haicoder.txt

运行后,终端输出如下:

85_Linux chattr命令详解.png

我们看到,文件无法删除,因为,我们为其增加了 i 属性。

解除锁定文件

语法

chattr -i file

案例

我们使用 lsattr 命令,查看其权限,具体命令如下:

lsattr haicoder.txt

运行后,终端输出如下:

86_Linux chattr命令详解.png

我们看到,现在文件 haicoder.txt 有 i 属性,现在,我们再次使用 chattr 命令,删除该文件的 i 属性,具体命令如下:

chattr -i haicoder.txt

运行后,终端输出如下:

87_Linux chattr命令详解.png

现在,我们再次使用 lsattr 命令,查看其权限,具体命令如下:

lsattr haicoder.txt

运行后,终端输出如下:

88_Linux chattr命令详解.png

我们看到,此时文件的 i 属性不存在了,现在,我们可以使用 rm 命令,删除该文件,具体命令如下:

rm -rf haicoder.txt

运行后,终端输出如下:

89_Linux chattr命令详解.png

即,我们现在,可以删除该文件了。

Linux chattr命令详解总结

Linux 中的 chattr 命令,用来修改文件或目录的隐藏属性,只有 root 用户可以使用。其中,+ 表示给文件或目录添加属性,- 表示移除文件或目录拥有的某些属性,= 表示给文件或目录设定一些属性。