在網上經常看到使用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
------------ 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 參數就可以看到。
$ 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)...