1、chattr用於配置文件的隱藏屬性
語法: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files... 選項與參數: +:增加某個特殊參數,其他原始存在參數不動; -:移除指定參數,其他參數不變; =:設定為chattr后面輸入的參數
A:當設定了A這個屬性時,若你有存取此文件/目錄時,他的訪問時間atime將不會被修改,可避免I/O較慢的機器過渡存取磁盤 S:一般文件是異步寫入磁盤的,如果加上S這個屬性,則同步寫入 a:當設定a之后,這個文件將只能增加數據,不能刪除也不能修改數據,僅root用戶允許設定 c:這個屬性設定后,將自動壓縮文件,在讀取時自動釋放 d:當dump程序被執行的時候,設定d屬性可使該文件/目錄不會被dump備份 i:該屬性可以讓一個檔案不能被刪除、修改、設定鏈接也無法寫入或新增資料,對於系統安全有幫助,僅root用戶允許設定 s:當文件設定了s屬性時,如果刪除該文件,則無法找回 u:與s相反,當刪除該文件,數據依據存在於磁盤中,可以使用來救援該文件
場景1:僅能在日志文件中追加內容而不能修改或刪除內容
#使用chattr需要root的權限,並且這個命令並不做直接提示 [es@bigdata-senior01 ~]$ sudo chattr +a loga.txt [sudo] es 的密碼: [es@bigdata-senior01 ~]$ lsattr loga.txt -----a---------- loga.txt [es@bigdata-senior01 ~]$ lsattr 1.txt ---------------- 1.txt #普通用戶如果不適用sudo,無法正常使用chattr命令 [es@bigdata-senior01 ~]$ chattr +a 1.txt chattr: 不允許的操作 while setting flags on 1.txt [es@bigdata-senior01 ~]$ ll loga.txt -rw-r--r-- 1 es es 0 1月 12 21:43 loga.txt [es@bigdata-senior01 ~]$ echo $PATH > loga.txt #只能追加 -bash: loga.txt: 不允許的操作 [es@bigdata-senior01 ~]$ echo $PATH >> loga.txt [es@bigdata-senior01 ~]$ rm -rf loga.txt rm: 無法刪除"loga.txt": 不允許的操作
用vi編輯后無法保存。
場景2:創建一個文件,無法進行刪除。
[es@bigdata-senior01 ~]$ echo $HOME >1.txt [es@bigdata-senior01 ~]$ cat 1.txt /home/es [es@bigdata-senior01 ~]$ sudo chattr +i 1.txt [sudo] es 的密碼: [es@bigdata-senior01 ~]$ lsattr 1.txt ----i----------- 1.txt [es@bigdata-senior01 ~]$ ll 1.txt -rw-rw-r-- 1 es es 9 1月 12 21:50 1.txt [es@bigdata-senior01 ~]$ rm 1.txt rm:是否刪除有寫保護的普通文件 "1.txt"?y rm: 無法刪除"1.txt": 不允許的操作
2、lsattr用於查看文件的隱藏屬性
lsattr顯示文件的隱藏權限,格式為“lsattr [參數] 文件”。
在 Linux 系統中,文件的隱藏權限必須使用 lsattr 命令來查看,平時使用的 ls 之類的命令則看不出隱藏屬性