从零开始学习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权限,而是防止出现一些重要文件的误操作。