欢迎光临
我们一直在努力

centos rm root也无法删除文件

最近安装smrtlink后,想删除smrtlink的安装文件,发现有几个数据库文件怎么也删不掉(用root也删不掉)

[root@localhost database]# ll          #查看文件信息
总用量 12
-rw-rw-r--. 1 smrtlink smrtlink 99 12 20 19:47 WSO2AM_DB.lock.db
-rw-rw-r--. 1 smrtlink smrtlink 99 12 20 19:47 WSO2CARBON_DB.lock.db
-rw-rw-r--. 1 smrtlink smrtlink 123 12 20 19:47 WSO2METRICS_DB.lock.db
[root@localhost database]# rm *        #用root删除文件
rm:是否删除普通文件 "WSO2AM_DB.lock.db"y
rm:是否删除普通文件 "WSO2CARBON_DB.lock.db"y
rm:是否删除普通文件 "WSO2METRICS_DB.lock.db"y
[root@localhost database]# ls          #查看文件,文件依然存在
WSO2AM_DB.lock.db WSO2CARBON_DB.lock.db WSO2METRICS_DB.lock.db

使用lsattr命令检查过文件的隐藏属性

[smrtlink@localhost database]$ lsattr WSO2AM_DB.lock.db 
---------------- WSO2AM_DB.lock.db

使用chattr -i 去除隐藏属性

[smrtlink@localhost database]$ chattr -i WSO2AM_DB.lock.db   #去除隐藏属性
[smrtlink@localhost database]$ rm -f WSO2AM_DB.lock.db       #删除
[smrtlink@localhost database]$ ls                            #删除WSO2AM_DB.lock.db成功
WSO2CARBON_DB.lock.db WSO2METRICS_DB.lock.db

lsattr 和 chattr命令解析

lsattr

语法: #lsattr [-aR]
参数说明:
-a :将隐藏文件的属性也列出来;
-R :连同子目录的数据也一并列出来!

范例: 
# chattr +i .bash_logout     ——>添加一个隐藏的“i”属性,后面再细讲
#lsattr -a             ——>将当前目录的文件或目录下的文件所有属性(包括隐藏属性)列出 
-------------- ./. 
-------------- ./.. 
---i---------- ./.bash_logout 
-------------- ./.bash_profile 
-------------- ./.bashrc

 

chattr

语法:#chattr [+-=][ASacdistu] [档案或目录名称]
参数说明:
+-= :分别为 [+ 增加] [- 减少] [= 设定] 属性的意思
A  :当设定了 A 这个属性时,这个档案(或目录)的存取时间
atime (access) 将不可被修改, 可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!
S  :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!
a  :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性。
c  :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩之后再储存(看来对于大档案似乎蛮有用的!)
d  :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效!
i  :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法写入或新增数据!对于系统安全性有相当大的帮助!
j  :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中! 但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!
s  :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
u  :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来 undeletion.

范例: 
#chattr +i  /etc/shadow     ——>添加“i”隐藏属性后,就无法更动这个文件了
#chattr -i  /etc/shadow     ——>解除"i"这个隐藏属性

补充说明:
本命令是重要的,尤其是在系统的安全性上面。由于这些属性是隐藏的性质,所以需要以 lsattr才能看到该属性。其中,最为重要的是属 +i 这个属性了,因为他可以让一个档案无法被更动,对于需要强烈的系统安全的人来说,真是相当的重要的!里头还有相当多的属性是需要 root 才能设定的!此外,如果是 log file 这种的登录档,就更需要 +a 这个可以增加,但不会被杀掉的参数了。

未经允许不得转载:小罗同学 » centos rm root也无法删除文件

分享到:更多 ()