在网上经常看到使用chmod修改文件权限的介绍文章,但是介绍Linux里面的另外两个经典的文件操作命令chattr和lsattr,shred的文章确很少,这是我的学习笔记,希望对新学Linux的朋友有所帮助。
chattr命令有很多用处,可以防止重要文件被错误的修改,误删。或把一些不在用机密的文件彻底删除,使其无法恢复。
好了下面看看chattr命令的具体用法。
chattr的作用是修改文件属性,需要超级用户的权限。
我们可以用下面的命令看看chattr命令的具体用法
$chattr –help
usage: chattr [-RV] [-+=AacDdijsSu] [-v version] files…
lsattr的作用是查看文件属性。
可以用下面的命令看看lsattr命令的具体用法
$lsattr –help
Usage: lsattr [-RVadlv] [files…]
先用vi建立一个叫test1的目录,内容随便。
$vi test1
用lsattr先看一下test1文件的属性
$ lsattr test1
————- test1
发现属性项都为空
好了我们为test1文件加一个属性看看。
$chattr +s test1
再用lsattr看一下test1文件的属性
$ lsattr test1
s———— test1
会发现test1多了一个s属性
s属性:意思是当删除test1这个文件时,相应的磁盘空间会被清零。就像我们常在windows用的一种彻底删除文件的软件。删除的文件不能被恢复
好了我们再看一个例子
$chattr +a test1
a属性:意思就是使文件只可以追加数据,不能修改或覆盖。这时我们再用vi编辑文件会发现只能追加数据,但不能修改以前的数据。
想删除已经添加的文件属性也很容易,只要用-减去就可以了,和chmod的操作一样。
$chattr -a test1
这样就去掉了test1只能追加数据的限制,可以自由修改了。
chattr还有很多参数可以选择,除了上面介绍的两个,常用的还有
i属性:不允许对这个文件进行修改,删除或重命名
c属性:保存文件时,压缩该文件。
其他还有很多参数,大家可以参考chattr的使用帮助。然后说说shred,使用 shred /dev/hda 就可以让你的硬盘数据立刻消失,永不超升。当然要使用你的硬盘的正确的设备文件。
默认情况下使用各种垃圾数据反复重写25遍,加上 -v 参数就可以看到。
snip
$ shred -v /dev/hda
shred: /dev/hda: pass 1/25 (random)…
shred: /dev/hda: pass 2/25 (492492)…
shred: /dev/hda: pass 3/25 (000000)…
shred: /dev/hda: pass 4/25 (aaaaaa)…
shred: /dev/hda: pass 5/25 (555555)…
shred: /dev/hda: pass 6/25 (cccccc)…
shred: /dev/hda: pass 7/25 (b6db6d)…
shred: /dev/hda: pass 8/25 (333333)…
shred: /dev/hda: pass 9/25 (6db6db)…
shred: /dev/hda: pass 10/25 (dddddd)…
shred: /dev/hda: pass 11/25 (222222)…
shred: /dev/hda: pass 12/25 (ffffff)…
shred: /dev/hda: pass 13/25 (random)…
shred: /dev/hda: pass 14/25 (eeeeee)…
shred: /dev/hda: pass 15/25 (924924)…
shred: /dev/hda: pass 16/25 (777777)…
shred: /dev/hda: pass 17/25 (999999)…
shred: /dev/hda: pass 18/25 (111111)…
shred: /dev/hda: pass 19/25 (888888)…
shred: /dev/hda: pass 20/25 (bbbbbb)…
shred: /dev/hda: pass 21/25 (db6db6)…
shred: /dev/hda: pass 22/25 (444444)…
shred: /dev/hda: pass 23/25 (666666)…
shred: /dev/hda: pass 24/25 (249249)…
shred: /dev/hda: pass 25/25 (random)…
snip
参考 man shred