天天看點

Centos7 檔案特殊權限屬性,lsattr&chattr

前言

之前,我們講過linux的普通檔案權限,但實際上,在普通的檔案權限上,還有一層更進階的特殊權限(也叫隐藏權限或屬性),這個可以控制改變檔案的屬性,以達到更進階的功能

以下所有基于

Centos7

系統進行示例。以下就詳細說說在centos7系統中的使用和表現。

正文

與檔案傳統權限類似,特殊權限的檢視和修改,分别使用 

lsattr

 和 

chattr

 指令

lsattr 檢視

lsattr

指令沒有help幫助資訊,看可以看到一個簡單的

usage

,提示了使用方法:

# lsattr -h
lsattr: invalid option -- 'h'
Usage: lsattr [-RVadlv] [files...]
           

如上可以看出

lsattr

一共有如下幾個參數,後跟檔案或目錄,就可以檢視到檔案的特殊權限(屬性):

-R  遞歸地處理指定目錄下的所有檔案及子目錄
-V  顯示版本資訊
-a 列出目錄中的所有檔案,包括隐藏檔案
-d  顯示目錄名稱,而非其内容
-l 指出要顯示裝置的邏輯名稱
-v 顯示檔案或目錄版本

chattr 修改

chattr

指令用于修改檔案的特殊權限(屬性),直接在檢視指令的用法:

# chattr --help
Usage: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...
           

可以看到可以通過 

+ - =

 來增加,删除,設定檔案的特殊權限,那這些

aAcCdDeijsStTu

又分别代表什麼權限呢? 通過

man

檢視指令的文檔,可以看得到:

  • a:隻能以追加模式打開以進行寫入
  • A:通路時不會修改其 atime 記錄
  • c:寫入此檔案會在将資料存儲到磁盤之前壓縮資料,讀取時會自動解壓傳回正常資料
  • C:檔案不會受到寫時複制更新的影響
  • d:檔案不能成為dump程式的備份目标
  • D:目錄被修改時,這些更改會同步寫入磁盤
  • e:該檔案正在使用範圍來映射磁盤上的塊。不能使用 chattr 删除它
  • i:無法修改,無法删除或重命名,無法建立指向此檔案的連結,也無法寫入或新增内容
  • j:如果檔案系統在mount時,使用“data=ordered”或“data=writeback”,寫入檔案本身之前會将其所有資料寫入journal日志,當使用“data=journal”,此屬性無效
  • s:檔案被删除時,它的塊被歸零并寫回到磁盤,即硬碟空間被全部收回
  • S:檔案被修改時,這些更改會同步寫入磁盤
  • t:檔案系統支援尾部合并(tail-merging)
  • T:目錄将被視為目錄層次結構的頂部
  • u:檔案被删除時,其内容會仍存在磁盤中,後面可以請求恢複

如上,通過chattr就可以修改檔案的特殊權限(屬性),最常見的就是 a,i 來限制檔案的修改,删除,寫入功能。如:

# chattr +i test.txt
           

除了這些屬性權限外,使用中還有

[-RVf]

,其意思分别為:

  • R:周遊目錄下的所有檔案
  • V:詳細說明 chattr 的輸出并列印程式版本
  • f:強制執行,忽略大多數錯誤

結束

如上所示,靈活使用

chattr

lsattr

就可以管理檔案的特殊權限(屬性),可以幫助更好的進行系統管理和運維

繼續閱讀