当你在Linux系统中对某一文件进行操作时,首先需要确保当前登录帐号具有相应的权限,比如读、写、执行权限;root用户在Linux操作系统中拥有最高权限,并被称为超级用户,是Linux系统中的神,没有它不能干的事。但有一天,你发现一个文件不能被删除,而在检查登录用户又是root时,请不要慌张,你又该学习新的命令了:chattr与lsattr。

我是root用户,当我使用rm命令删除文件时提示没有权限,而且还是在自己的家目录中,ls命令可以看到文件的所属用户为root且具有读写权限。

 

1. chattr命令

作用:设置文件的隐藏属性

常用语法:chattr [+-=][ASacdis] 文件名或目录名

选项说明:

+ :增加一个特殊参数,在原有的参数上继续增加;

– :移除一个特殊参数,只移除当前参数,其他参数不变;

= :设定特殊参数,且文件仅有后面设定的参数;

A :存在A 这个属性时,这个文件(或目录)的存取时间 atime (access) 将不可被修改;

S :文件内容被修改时,将数据同步写入磁盘当中;

a :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性;

c :这个属性设定之后,将会自动的将此文件进行压缩,在读取的时候将会自动解压缩;

d :当dump(备份)程序被执行的时候,设定 d 属性将可使该文件(或目录)不具有dump功能;

i :设定i属性后,这个文件不能被删除、重命名、修改内容等操作,root用户也没办法完成这些操作;

s :当文件设定了 s 参数时,执行删除命令后将不能再恢复;

 

2. lsattr命令

作用:查看文件的隐藏属性

语法:lsattr [操作选项] 或 lsattr [操作选项] 文件名

选项说明:

-a :显示所有文件和目录;

-d :显示当前目录的权限,不显示目录中的子文件;

-R :递归处理,将指定目录下的所有文件及子目录一并处理;

-v :显示文件或目录版本;

-V :显示版本信息。

 

3. 回顾不能删除的文件

使用lsattr命令即可让它原形毕露:

lsattr

可以看到oldfile.txt命令有一个i隐藏属性,具备该属性后,即便是root用户也对其没有一点办法操作,解决办法是root用户使用chattr命令将i属性移除再删除:

chattr -i oldfile.txt

作者 admin

发表评论

您的电子邮箱地址不会被公开。