编程小贴士

给你的编程提供小点子


为什么linux下你对文件有读写执行权限,却无法删除它

一般Linux的文件系统都是ext2/ext3。ext文件系统的文件,目录会有一些文件系统所特有的属性。我们之前所熟知的rwx等属性是linux操作系统赋予文件的属性,和登录用户相关。而本文所说的这个特性是文件系统相关的,它不受登录用户的限制。

ext3所包括的文件属性很多,主要涉及到文件在文件系统上的存储、是否启用日志、是否更新atime、是否采用压缩等多种高级特性,其中我们常见的一种属性就是防删除。

使用lsattr命令可以查看文件的文件系统属性,

tips1000_2014-10-20_00-38-172

横杠-表示未设置属性,默认情况下新建的文件是没有任何属性的,可以用chattr命令来进行修改。

每种属性有一个代号,详细的代号及其解释可以使用man chattr查看。我们说的防删除属性代号为i。chattr  +用来增加属性,chattr  -用来去除属性。需要注意的时,执行chattr需要root权限,否则会修改失败。我们为linux这个文件增加i属性,如下:

tips1000_2014-10-20_00-38-17

此时文件linux已经被赋予了i属性,尝试删除就会错误。

tips1000_2014-10-20_00-38-171

同时,此文件也不能被修改,重命名以及做硬链接。

利用这个特性就可以实现保护系统文件的目的,防止由于误操作导致文件丢失。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>