每天乙個linux命令(63) chattr命令

2021-06-22 14:09:25 字數 2232 閱讀 3728

chattr命令的作用很大,其中一些功能是由linux核心版本來支援的,如果linux核心版本低於2.2,那麼許多

功能不能實現。同樣-d檢查壓縮檔案中的錯誤的功能,需要2.5.19以上核心才能支援。另外,通過chattr命令

修改屬性能夠提高系統的安全 性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var

目錄。 lsattr比較簡單,只是顯示檔案的屬性

[root]#lsattr

----ia---j--- ./lsattr_test

這兩個命令是用來改變檔案、目錄屬性的,和chmod,ls這些命令相比,chmod只是改變檔案的讀寫、執行許可權,

更底層的屬性控制是由chattr來改變的。

chattr命令的用法:chattr [ -rv ] [ -v version ] [ mode ] files...

最關鍵的是在[mode]部分,[mode]部分是由+-=和[asacddiijsttu]這些字元組合的,這部分是用來控制檔案的

屬性。- :在原有引數設定基礎上,移除引數。

= :更新為指定引數設定。

a:檔案或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁碟i/o錯誤的發生。

s:硬碟i/o同步選項,功能類似sync。

c:即compresse,設定檔案是否經壓縮後再儲存。讀取時需要經過自動解壓操作。

d:即no dump,設定檔案不能成為dump程式的備份目標。

j:即journal,設定此引數使得當通過mount引數:data=ordered 或者 data=writeback 掛 載的檔案系統,檔案在寫入時會先被記錄(在journal中)。如果filesystem被設定引數為 data=journal,則該引數自動失效。

s:保密性地刪除檔案或目錄,即硬碟空間被全部收回。

u:與s相反,當設定為u時,資料內容其實還存在磁碟中,可以用於undeletion.

各引數選項中常用到的是a和i。a選項強制只可新增不可刪除,多用於日誌系統的安全設定。而i是更為嚴格的安全設定,只有superuser (root) 或具有cap_linux_immutable處理能力(標識)的程序能夠施加該選項。

+ :在原有引數設定基礎上,追加引數。

應用例項一:

1、用chattr命令防止系統中某個關鍵檔案被修改

# chattr +i /etc/fstab 

然後試一下rm mv rename等命令操作於該檔案,都是得到operation not permitted 的結果

2、讓某個檔案只能往裡面追加內容,不能刪除,一些日誌檔案適用於這種操作

# chattr +a /data1/user_act.log

應用例項二:

[root@ticket-a ~]# passwd root

changing password for user root.

new unix password:

retype new unix password:

sorry, passwords do not match

new unix password:

retype new unix password:

passwd: authentication token manipulation error

有的說是根目錄空間滿,或者是密碼檔案的許可權的問題

如果以前對系統做安全配置,把/etc/passwd, /etc/shadow 改為不可修改

那就需要取消之前的修改,如下:

[root@station22 ~]# lsattr /etc/passwd /etc/shadow ----i-------- /etc/passwd ----i-------- /etc/shadow

[root@station22 ~]# chattr -i /etc/passwd [root@station22 ~]# chattr -i/etc/shadow

[root@station22 ~]# lsattr /etc/passwd /etc/shadow ------------- /etc/passwd ------------- /etc/shadow

再修改root的密碼就可以。

修改完之後,再執行

[root@station22 ~]# chattr +i /etc/passwd [root@station22 ~]# chattr +i/etc/shadow

每天乙個Linux命令

將我遇到的linux指令總結一下,不斷增加 1 sz和rz 一般來說,linux 伺服器大多是通過 ssh客戶端來進行遠端的登陸和管理的,使用 ssh登陸 linux ssh有關的兩個命令可以提供很方便的操作 sz 將選定的檔案傳送 send 到本地機器 rz 執行該命令會彈出乙個檔案選擇視窗,從本...

每天乙個linux命令

linux cmp命令 linux cmp命令用於比較兩個檔案是否有差異。當相互比較的兩個檔案完全一樣時,則該指令不會顯示任何資訊。若發現有所差異,缺省會標示出第乙個不同之處的字元和列數編號。若不指定任何檔名稱或是所給予的檔名為 則cmp指令會從標準輸入裝置讀取資料。語法cmp clsv i 字元數...

每天乙個 Linux 命令

head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾。1 命令格式 head 引數 檔案 2 命令功能 head 用來顯示檔案的開頭至標準輸出中,預設head命令列印其相應檔案的...