Centos中chattr和lsattr命令使用詳解

參數說明:node

+-= :分別爲 [+ 增長] [- 減小] [= 設定] 屬性的意思安全

A  :當設定了 A 這個屬性時,這個檔案(或目錄)的存取時間atime (access) 將不可被修改, 可避免例如手提式計算機容易有磁盤 I/O 錯誤的狀況發生!bash

S  :這個功能有點相似 sync 的功能!就是會將數據同步寫入磁盤當中!能夠有效的避免數據流失!ide

a  :當設定 a 以後,這個檔案將只能增長數據,而不能刪除,只有 root 才能設定這個屬性。日誌

c  :這個屬性設定以後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮出來,可是在儲存的時候,將會先進行壓縮以後再儲存(看來對於大檔案彷佛蠻有用的!)rem

d  :當 dump (備份)程序被執行的時候,設定 d 屬性將可以使該檔案(或目錄)具備 dump 功效!同步

i  :這個 i 可就很厲害了!他可讓一個檔案『不能被刪除、更名、設定連結也沒法寫入或新增數據!對於系統安全性有至關大的幫助!it

j  :當使用 ext3 這個檔案系統格式時,設定 j 屬性將會使檔案在寫入時先記錄在 journal 中! 可是當 filesystem 設定參數爲 data=journalled 時,因爲已經設定了日誌了,因此這個屬性無效!io

s  :當檔案設定了 s 參數時,他將會被徹底的移除出這個硬盤空間。class

u  :與 s 相反的,當使用 u 來設定檔案時,則數據內容其實還存在磁盤中,可使用來 undeletion.



chattr示例Shell


 


chattr +i  /etc/shadow    #添加「i」隱藏屬性後,就沒法更動這個文件了

chattr -i  /etc/shadow      #解除"i"這個隱藏屬性

lsattr命令的用法:lsattr [-aR]

參數說明:

-a :將隱藏文件的屬性也列出來;

-R :連同子目錄的數據也一併列出來!


lsattr示例Shell


 


chattr +i .bash_logout     #添加一個隱藏的「i」屬性,後面再細講

lsattr -a          #將當前目錄的文件或目錄下的文件全部屬性(包括隱藏屬性)列出 

-------------- ./. 

-------------- ./.. 

---i---------- ./.bash_logout 

-------------- ./.bash_profile 

-------------- ./.bashrc


例如,這是一個很正常的刪除邏輯,用戶是root,從常理上說,只要不是文件處於被打開狀態,root能夠刪除任何文件:


root@compute-node:~/test# ls -l

total 0

-rw-r--r-- 1 root root 0 Jul 18 15:02 1.txt

-rw-r--r-- 1 root root 0 Jul 18 15:02 2.txt

root@compute-node:~/test# rm 1.txt

root@compute-node:~/test# ls

2.txt

root@compute-node:~/test#


小小的chattr一下,則2.txt沒法被簡單的刪除,且lsattr發現2.txt多了一個屬性:


root@compute-node:~/test# chattr +i 2.txt

root@compute-node:~/test# rm 2.txt

rm: cannot remove 2.txt: Operation not permitted

root@compute-node:~/test#

root@compute-node:~/test# lsattr 2.txt

----i--------e-- 2.txt


取消掉2.txt的i屬性後,2.txt又能夠刪除了


root@compute-node:~/test# chattr -i 2.txt

root@compute-node:~/test# rm 2.txt

root@compute-node:~/test# ls

root@compute-node:~/test#

相關文章
相關標籤/搜索