从零开始学习Linux(二十八):文件权限之chattr权限

1、chattr命令

命令格式: chattr [+-=] [选项] 文件名或者目录名;
参数说明:

  • +:增加权限;
  • -:删除权限;
  • = 等于某权限;

选项说明:

  • i:如果对文件设置i属性,则不允许对文件进行删除、重命名、修改文件内容等操作(类似于Windows系统中设置文件只读属性);如果对目录设置i属性,则只能修改目录下面的文件数据,不允许创建、删除文件;
  • a:如果对文件设置a属性,则只能在文件中增加数据,不能删除或修改数据;如果对目录设置a属性,则只能在目录中创建和修改文件,不能删除文件;

2、lsattr命令

命令作用:查看文件系统属性;
命令格式:lsattr [选项] 文件名;
选项说明:

  • -a:显示所有文件和目录;
  • -d:若目标是目录,仅列出目录本身的属性,而不包含子文件的属性;

3、举例说明chattr权限

3.1、对文件赋予i属性

(1)创建目录/project/zhoujielun,并在此目录中创建文件qinghuaci

(2)为文件qinghuaci赋予i属性

执行命令:

chattr +i qinghuaci

(3)查看qinghuaci文件系统属性
执行命令:

lsattr -a qinghuaci

从图中可以看到文件属性中有i,表示赋予了i属性权限。其中e表示系统文件格式ext4。

查看文件系统类型

(4)测试使用root删除qinghuaci文件,提示不能删除,不允许操作。

(5)测试使用vim命令打开qinghuaci文件,编辑内容:

最终提示不允许写入:

(6)同样也不允许使用echo命令写入

3.2、对目录赋予i属性

(1)为/project/zhoujielun目录赋予i属性;

chattr +i /project/zhoujielun

(2)查看zhoujielun目录的文件系统属性

(3)测试创建文件和删除文件均报错

3.3、对文件赋予a属性

(1)在目录/project/zhoujielun目录下面创建niangzi文件,并为其赋予a权限

(2)查看文件niangzi的文件系统属性

(3)测试删除文件niangzi

删除文件报错!

(4)测试使用echo命令往文件中增加内容

如上图所示,可以使用echo命令添加数据。
注意:使用vim命令编辑的时候,是不允许保存的,因为系统不能确定使用vim命令到底是做了新增还是编辑操作!!!

3.4、对目录赋予a属性

(1)给zhoujielun目录赋予a权限;

(2)测试删除文件niangzi

不允许删除文件!

(3)测试创建文件qingtian

允许创建文件。

3.5、总结

通过上面四个例子,我们可以看到chattr对文件或目录,赋予不同的属性,起到的作用也是不同的。

以上示例都是通过root账户操作的。因此可以看到,chattr命令权限依然会限制root用户的操作,但是root用户可以增加删除chattr权限。

此权限最大的意义并非是限制root权限,而是防止出现一些重要文件的误操作。

你可能感兴趣的:(从零开始学习Linux(二十八):文件权限之chattr权限)