Linux文件系统属性权限chattr与lsattr命令

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。


一、设定文件系统属性:chattr

chattr [+-=][选项] 文件或目录名

  +:增加权限

  -:删除权限

  =:等于某权限

选项:

a,如果对文件设置a属性,那么只能在文件中增加数据,也不能删除和修改数据,如果对目录设置a属性,那么只允许在目录中建立和修改文件,但不允许删除文件,多用于服务器日志文件安全。

i,如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据,如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。

  
注意:chattr 限制权限之后,root 用户也不能例外。这个命令可以防止对文件进行误操作。


二、查看文件的系统属性:lsattr

lsattr 选项 文件名
  
选项:

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

三、举例说明

1、设置文件为只读。
------------------------------------------
[root@CentOS7 home]# chattr +i ii
------------------------------------------

2、查看chattr命令赋予文件的属性
------------------------------------------
[root@CentOS7 home]# lsattr
---------------- ./pi1
---------------- ./pi2
----i----------- ./ii                                    #可以看到被设置成只读会多个i的参数
---------------- ./dd
[root@CentOS7 home]#
------------------------------------------

3、取消文件的只读
------------------------------------------
[root@CentOS7 home]# chattr -i ii
------------------------------------------

4、如果想递归地改变目录及其内容的属性,可以使用标记-R来完成,例如,如果您想让d1目录中的所有文件都是只读的,那么请使用以下方式:
------------------------------------------
[root@CentOS7 ~]# chattr -R +i d1
------------------------------------------
  

发布了136 篇原创文章 · 获赞 38 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/Pipcie/article/details/104959910