首页 Linux 的 chattr 命令用途
文章
取消

Linux 的 chattr 命令用途

第一次使用 chattr 应该是在 安装Spring Boot应用作为系统服务 里:

如果被黑了,黑客可以将 jar 文件设为可写的并修改它的内容。其中一种防护方式是将它设置为不可修改的,通过使用 chattr 命令,命令如下:

1
$ sudo chattr +i your-app.jar

这会防止任何用户,包括 root 修改 jar 的内容。

所以本文就列举一下 chttr 的用途。

最常用的

一般会使用 sudo chattr +i 文件名 来将某个文件设为不可修改,连 root 也不能修改。 man page 说明如下:

i A file with the ‘i’ attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file, most of the file’s metadata can not be modified, and the file can not be opened in write mode. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

移除这个 i 属性,可以使用 sudo chattr -i 文件名 操作。

查看文件属性

可以使用 lsattr 命令列出文件的属性。 例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
ubuntu@zwt:~$ lsattr Hello.java
--------------e------- Hello.java
ubuntu@zwt:~$ sudo chattr +i Hello.java
ubuntu@zwt:~$ lsattr Hello.java
----i---------e------- Hello.java
ubuntu@zwt:~$ echo "class B {}" >> Hello.java
-bash: Hello.java: Operation not permitted
ubuntu@zwt:~$ sudo chattr -i Hello.java
ubuntu@zwt:~$ echo "class B {}" >> Hello.java
ubuntu@zwt:~$ java Hello.java
Hello World

ubuntu@zwt:~$
本文由作者按照 CC BY 4.0 进行授权