[root@node-005 ~]# rm -rf /home/wwwroot

rm: cannot remove `/home/wwwroot/default/.user.ini': Operation not permitted

[root@node-005 ~]# chattr -i /home/wwwroot/default/.user.ini 

[root@node-005 ~]# rm -rf /home/wwwroot

解析:

Linux chattr命令

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

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

  1. a:让文件或目录仅供附加用途。

  2. b:不更新文件或目录的最后存取时间。

  3. c:将文件或目录压缩后存放。

  4. d:将文件或目录排除在倾倒操作之外。

  5. i:不得任意更动文件或目录。

  6. s:保密性删除文件或目录。

  7. S:即时更新文件或目录。

  8. u:预防以外删除。

语法

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

参数

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

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

  -V 显示指令执行过程。

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

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

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

实例

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

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

会显示如下属性

----i-------- /etc/resolv.conf

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

chattr +a /var/log/messages


Linux chgrp命令

Linux chgrp命令用于变更文件或目录的所属群组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

参数说明

  -c或--changes 效果类似"-v"参数,但仅回报更改的部分。

  -f或--quiet或--silent  不显示错误信息。

  -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。

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

  -v或--verbose  显示指令执行过程。

  --help  在线帮助。

  --reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

  --version  显示版本信息。

实例

实例1:改变文件的群组属性:

chgrp -v bin log2012.log

输出:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


"log2012.log" 的所属组已更改为 bin

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


说明: 将log2012.log文件由root群组改为bin群组

实例2:根据指定文件改变文件的群组属性

chgrp --reference=log2012.log log2013.log

输出:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


说明: 改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同