代码改变世界

linux root用户无法删除文件,提示permission denied

2019-06-28 00:02  youxin  阅读(10497)  评论(0编辑  收藏  举报

我用root用户登录,删除一个普通的文件,怎么删也删不了。最后用lsattr命令查看,原来是被保护了。lsattr查看一个文件 

1. chattr权限简介

chattr - change file attributes on a Linux file system.

也就是说chattr命令的作用是改变linux文件系统中指定的文件的属性。

chatrr权限是一种非常特殊的权限,它设置的属性对超级用户root也有效。只不过,它设置的属性也可以通过root来删除。

归根结底,chattr的作用是防止用户(包括root)对文件或目录进行误操作(比如修改或删除)的一种保险手段。

2. chattr命令格式

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

  1.  
    +:增加权限(属性)
  2.  
    -:删除权限(属性)
  3.  
    =:设置权限(属性)
  • 1

 a :设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性。

  i :它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。

 

问题,已经去掉了某个文件的i属性和a属性,为什么还是不能删除???

原因在于该文件的所在目录的属性也要去掉。

  • 如果去掉文件或目录的隐藏属性之后还是不能删除,那么查看父目录是否配置了不可删除的隐藏属性,若父目录有配置,文件也是不能删除的,需要逐级往上查看

 

查看文件的系统属性

命令格式:lsattr [选项] 文件名

  1. [root@localhost tmp]# lsattr a.txt
  2.  
    ----i--------e- a.txt
  3.  
    可以发现,小写字母i表示该文件被设置了i属性
     
     
     
     

    如果您想给一个文件多加点保护,可以使用命令:chattr +i filename