星期二, 9月 18, 2007

Linux chattr Notes


* 檔案隱藏屬性:

unix-like 的系統中,除了傳統的 rwxrwxrwx 屬性之外,後來為了因應各種需求,
在原有的檔案屬性外擴增了許多不同的屬性,如各系統共通的 SUID, Sticky 等等。
此外還有一種屬性較鮮為人知,就是所謂的不可更動屬性,這種屬性在不同的 OS 上
大都有不同的實作 (implementation),其中 BSD 與 Linux 對不可更動屬性都有不同
的做法:

* BSD .... chflags
* Linux .. chattr


* 語法:

設定:
chattr [-RV] +-=[ASacDdIijsTtu] [-v version] files...

查詢:
lsattr [ -RVadv ] [ files... ]


* 選項:

-R (Recursively) 包含所有子目錄與檔案
-V (Verbose) 顯示檔案
-v (version) 顯示檔案版本


* 屬性:

只有 super user 能設定的屬性:
a 只能新增內容 (append)
i 無法更動內容 (immutable)

* 其他的不常用,需要時再自己看 manual。


* 範例:

# 讓 /bin /sbin 不可更動:
chattr -R +i /bin /sbin

# 顯示隱藏屬性狀態
lsattr -d /bin /sbin /bin/* /sbin/* | less

# 讓 /bin /sbin 可以更動
chattr -R -i /bin /sbin

# 讓系統日誌只能新增
chattr +a /var/log/*

沒有留言: