Linux chattr命令介绍
chattr命令是change file attributes on a Linux file system的缩写,主要用于改变文件或目录的属性。这个命令允许管理员控制谁可以修改文件或目录,或者在什么情况下可以修改。
Linux chattr命令适用的Linux版本
chattr命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等。如果某些Linux发行版中没有预装这个命令,可以通过包管理器进行安装。例如,在Debian和Ubuntu上,可以使用apt-get命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install e2fsprogs
在CentOS 7上,可以使用yum命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum install e2fsprogs
在CentOS 8上,可以使用dnf命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install e2fsprogs
Linux chattr命令的基本语法
chattr命令的基本语法如下:
chattr [选项] [+-=] [属性] 文件或目录
Linux chattr命令的常用选项或参数说明
| 选项 | 说明 | 
|---|---|
| + | 添加属性 | 
| - | 删除属性 | 
| = | 设置属性 | 
| i | 设置为不可变,不能被删除、修改、重命名或链接 | 
| a | 只能追加内容,不能删除或修改 | 
| s | 安全删除,删除时会被覆盖 | 
| A | 不更新最后访问时间 | 
Linux chattr命令实例详解
实例1:设置文件为不可变
[linux@bashcommandnotfound.cn ~]$ touch testfile
[linux@bashcommandnotfound.cn ~]$ sudo chattr +i testfile
在这个例子中,我们首先使用touch命令创建了一个名为testfile的空文件,然后使用chattr +i命令将其设置为不可变。这意味着这个文件不能被删除、修改、重命名或链接。
实例2:查看文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr testfile
在这个例子中,我们使用lsattr命令查看了testfile文件的属性。如果文件被设置为不可变,那么输出中会包含i字符。
实例3:删除文件的不可变属性
[linux@bashcommandnotfound.cn ~]$ sudo chattr -i testfile
在这个例子中,我们使用chattr -i命令删除了testfile文件的不可变属性。这意味着这个文件现在可以被删除、修改、重命名或链接。
实例4:设置文件只能追加内容
[linux@bashcommandnotfound.cn ~]$ sudo chattr +a testfile
在这个例子中,我们使用chattr +a命令将testfile文件设置为只能追加内容。这意味着我们可以向这个文件添加内容,但不能删除或修改已有的内容。
实例5:查看目录的属性
[linux@bashcommandnotfound.cn ~]$ mkdir testdir
[linux@bashcommandnotfound.cn ~]$ sudo chattr +i testdir
[linux@bashcommandnotfound.cn ~]$ lsattr -d testdir
在这个例子中,我们首先使用mkdir命令创建了一个名为testdir的目录,然后使用chattr +i命令将其设置为不可变。最后,我们使用lsattr -d命令查看了这个目录的属性。如果目录被设置为不可变,那么输出中会包含i字符。
实例6:删除文件的只追加属性
[linux@bashcommandnotfound.cn ~]$ sudo chattr -a testfile
在这个例子中,我们使用chattr -a命令删除了testfile文件的只追加属性。这意味着我们现在可以删除或修改这个文件的内容。
实例7:设置文件为安全删除
[linux@bashcommandnotfound.cn ~]$ sudo chattr +s testfile
在这个例子中,我们使用chattr +s命令将testfile文件设置为安全删除。这意味着当我们删除这个文件时,它的内容会被覆盖,以防止数据恢复。
实例8:删除文件的安全删除属性
[linux@bashcommandnotfound.cn ~]$ sudo chattr -s testfile
在这个例子中,我们使用chattr -s命令删除了testfile文件的安全删除属性。这意味着当我们删除这个文件时,它的内容不会被覆盖。
Linux chattr命令的注意事项
- chattr命令需要超级用户权限才能运行。
- 如果你看到bash: chattr: command not found的错误提示,那么可能是你的系统中没有安装chattr命令,可以按照上面的方法进行安装。
Linux chattr相关命令
- lsattr命令:列出文件的属性
- chmod命令:修改文件或目录的权限
- chown命令:修改文件或目录的所有权
- chgrp命令:修改文件或目录的所属群组
- touch命令:改变文件的时间
- cp命令:复制文件或目录
- mv命令:移动文件或者重命名
- rm命令:删除文件或目录
- ln命令:创建链接文件
- find命令:搜索并定位目录中的文件