天天看點

linux擴充隐藏屬性 與 lsattr/chattr指令

1、ext3的隐藏屬性(attribute) 

    在2.2和2.4系列的核心中,ext3檔案系統支援以下屬性的設定和查詢:     

    A 

    Atime。告訴系統不要修改對這個檔案的最後通路時間。     

    S 

    Sync。一旦應用程式對這個檔案執行了寫操作,使系統立刻把修改的結果寫到磁盤。     

    a 

    Append Only。系統隻允許在這個檔案之後追加資料,不允許任何程序覆寫或者截斷這個檔案。如果目錄具有這個屬性,系統将隻允許在這個目錄下建立和修改檔案,而不允許删除任何檔案。     

    i 

    Immutable。系統不允許對這個檔案進行任何的修改。如果目錄具有這個屬性,那麼任何的程序隻能修改目錄之下的檔案,不允 許建立和删除檔案。     

    d 

    No dump。在進行檔案系統備份時,dump程式将忽略這個檔案。     

    c 

    Compress。系統以透明的方式壓縮這個檔案。從這個檔案讀取時,傳回的是解壓之後的資料;而向這個檔案中寫入資料時,數 據首先被壓縮之後,才寫入磁盤。     

    s 

    Secure Delete。讓系統在删除這個檔案時,使用0填充檔案所在的區域。     

    u 

    Undelete。當一個應用程式請求删除這個檔案,系統會保留其資料塊以便以後能夠恢複删除這個檔案。 

2、每個核心版本支援的屬性标志: 

    * 允許設定這個标志并使設定生效 

    i 允許設定這個标志但忽略其值 

    - 完全忽略這個标志 

        1.0 1.2 2.0 2.2 2.4 

    A    -   -   *   *   * 

    S    *   *   *   *   * 

    a    -   *   *   *   * 

    i    -   *   *   *   * 

    d    -   *   *   *   * 

    c    i   i   i   i   i 

    s    *   *   i   i   i 

    u    i   i   i   i   i 

3、lsattr顯示隐藏屬性指令:一般都有這個指令,如果沒有,則下載下傳這個工具包的源代碼編譯并安裝:http://sourceforge.net/projects/e2fsprogs 

    lsattr指令隻支援很少的選項,其選項如下: 

    -a 

    列出目錄中的所有檔案,包括以.開頭的檔案。     

    -d 

    以和檔案相同的方式列出目錄,并顯示其包含的内容。     

    -R 

    以遞歸的方式列出目錄的屬性及其内容。     

    -v 

    列出檔案版本(用于網絡檔案系統NFS)。 

4、chattr設定指令,可以通過以下三種方式執行: 

    chattr +Si test.txt 

    給test.txt檔案添加同步和不可變屬性。 

    chattr -ai test.txt 

    把檔案的隻擴充(append-only)屬性和不可變屬性去掉。 

    chattr =aiA test.txt 

    使test.txt檔案隻有a、i和A屬性。 

    最後,每個指令都支援-R選項,用于遞歸地對目錄和其子目錄進行操作。 

5、我們應該使用chattr做什麼? 

    主機直接暴露在Internet或者位于其它危險的環境,有很多shell帳戶或者提供HTTP和FTP等網絡服務,一般應該在安裝配置完成後使用 如下指令: 

    chattr -R +i /bin /boot /etc /lib /sbin 

    chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin 

    chattr +a /var/log/messages /var/log/secure (...) 

    如果很少對帳戶進行添加、變更或者删除,把/home本身設定為immutable屬性也不會造成什麼問題。在很多情況下,整個/usr目錄樹也應該具有不可改變屬性。實際上,除了對/usr目錄使用chattr -R +ii /usr/指令外,還可以在/etc/fstab檔案中使用ro選項,使/usr目錄所在的分區以隻讀的方式加載。另外,把系統日志檔案設定為隻能添加屬性(append-only),将使入侵者無法擦除自己的蹤迹。

繼續閱讀