# **一分鐘指令分享** # chattr **chattr 指令,它可以用來設定檔案的各種屬性,防止檔案被刪除或是更改,即使是有管理者權限的時候也無法更動。** **在 Linux 系統中有時候我們會需要保護某些重要的檔案,避免這些檔案不小心被更改或是刪除,像是 /etc 下面的一些系統設定檔案**,我們可能會不希望系統的套件管理程式在升級套件時更改掉我們已經設定好的設定檔, **chattr 是一個可以用來設定 Linux 檔案屬性的指令,這些屬性跟一般使用 chmod 所設定的讀取(read)、寫入(write)與執行(execute)不同,chattr 可以設定更多其他的屬性** **基本使用方式** ``` chattr [-RVf] [operator][attribute(s)] files... ``` chattr 常用屬性: a:只能以附加的方式寫入(append only)。 c:自動壓縮(compressed),Linux 核心會自動把檔案的內容先壓縮後,再寫入硬碟,而在讀取但內容時,Linux 核心也會自動進行解壓縮。 d:在使用 dump 時,這種檔案會被排除(no dump)。 i:檔案不可以被更動(immutable),不可以寫入、刪除、建立連結檔等。 s:安全刪除檔案(secure deletion),當檔案被刪除時,系統會將所有硬碟上的檔案內容用 0 取代,確保檔案資料確實刪除。 A:不要更新檔案存取時間(no atime updates)。 C:關閉 copy-on-write(no copy on write)。 S:當檔案內容更動時,馬上同步寫入硬碟(synchronous updates)。 其中 operator 可以是 +、- 或 =,後面再加上要設定的 attribute(s),這跟 chmod 指令的用法類似 # 讓檔案只能增加內容,不能刪除 **有些重要的系統記錄檔也是常常會需要保護的對象,但這些紀錄檔會不斷的更新,無法直接使用 i 屬性,如果想要避免誤刪這類的檔案,可以使用 a 屬性,設定這個屬性可以讓檔案只能增加內容,不可以刪除或覆寫**,例如: ``` sudo chattr +a /var/log/syslog ``` # users **Linux中,"users"命令用於顯示當前登錄系統的使用者列表。它會列出已登錄的所有使用者,並顯示他們的使用者名稱。** 該命令將輸出當前登錄的使用者的使用者名稱列表,每個使用者名稱之間用空格分隔。 ``` users ``` 如果您想查看更詳細的使用者資訊,可以使用"who"命令。它將顯示每個登錄使用者的使用者名稱、終端、登錄時間和來源IP地址。 ``` who ```