linux之chattr命令详解

chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的,chattr控制更细腻。

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

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

  1. a:让文件或目录仅供附加用途。
  2. b:不更新文件或目录的最后存取时间。
  3. c:将文件或目录压缩后存放。
  4. d:将文件或目录排除在倾倒操作之外。
  5. i:不得任意更动文件或目录。
  6. s:保密性删除文件或目录。
  7. S:即时更新文件或目录。
  8. u:预防意外删除。

    -R 递归处理,将指定目录下的所有文件及子目录一并处理。

  -v<版本编号> 设置文件或目录版本。

  -V 显示指令执行过程

linux之chattr命令详解_第1张图片

+<属性> 开启文件或目录的该项属性。

-<属性> 关闭文件或目录的该项属性。

=<属性> 指定文件或目录的该项属性。

用chattr命令防止系统中某个关键文件被修改:

[root@node1 ~]# lsattr /etc/resolv.conf
---------------- /etc/resolv.conf
[root@node1 ~]# chattr +i /etc/resolv.conf
[root@node1 ~]# lsattr /etc/resolv.conf
----i----------- /etc/resolv.conf
[root@node1 ~]# echo aa >> /etc/resolv.conf
-bash: /etc/resolv.conf: Permission denied

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

[root@node1 ~]# lsattr /var/log/messages
---------------- /var/log/messages
[root@node1 ~]# chattr +a /var/log/messages
[root@node1 ~]# lsattr /var/log/messages
-----a---------- /var/log/messages
[root@node1 ~]# echo s > /var/log/messages
-bash: /var/log/messages: Operation not permitted
[root@node1 ~]# echo s >> /var/log/messages

 

你可能感兴趣的:(linux)