导航

    <#CACHE_INCLUDE_NAVBAR#>
« 思科的三大致命弱點批量壓縮體積龐大的pdf文件操作方法 »

Linux文件系統屬性使用方法

2011年5月16日 Linux 0条评论 0个引用

在使用文件系統屬性之前,您應該了解各種文件系統間的主要區別。壹般情況下,我們把文件系統分為XFS文件系統和其它文件系統。對於管理屬性,XFS有自己的解決方法,且這裏我們將討論的屬性選項也完全不壹樣。在本文中,我們將討論ext文件系統上的屬性設置。要使用文件系統屬性,必須啟動文件系統。默認情況下,只有新啟動的文件系統使用文件系統屬性。為了啟動壹個文件系統屬性支持,您需要在掛載文件系統時指定壹個掛載(mount)選項。這個選項就是user_xattr。在測試本文描述的任何信息之前,請確認該屬性設置為啟動。您可以使用掛載(mount)命令來確認該信息。下面的內容顯示如何在啟動了根文件系統的計算機上查看文件系統屬性。
    通過使用掛載(mount)命令來確認文件系統屬性支持
    /dev/mapper/vg_flo-lv_root on / type ext4 (rw,noatime,user_xattr)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
    /dev/sda1 on /boot type ext4 (rw)
    /dev/mapper/luks-3e67401f-44c6-4a27-a1bf-cdf0dcf45f65 on /home type ext4
    (rw,noatime,user_xattr)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    none on /proc/fs/vmblock/mountPoint type vmblock (rw)
    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
    fusectl on /sys/fs/fuse/connections type fusectl (rw)
    gvfs-fuse-daemon on /home/sander/.gvfs type fuse.gvfs-fuse-daemon
    (rw,nosuid,nodev,user=sander)
    如果目前文件系統不支持這些屬性,通常情況下,您可以為壹個已掛載的文件系統添加user_xattr選項。您可以使用如下命令,在根文件系統上添加user_xattr選項。
    mount -o remount,user_xattr /
    重新掛載(remount)選項可以保證文件系統使用新的屬性,而無需完全卸載文件系統。如果您希望文件系統能長期支持文件系統屬性,您需要在/etc/fstab文件中裏指定其作為壹個選項。 以下顯示,如何在我的Fedora系統上為根邏輯卷啟動文件系統屬性。
    顯示與改變屬性
    這裏存在兩種不同的文件系統屬性。壹些屬性是作為默認屬性使用,而另壹些則被設置為簡單的文件管理系統。lsattr命令能顯示計算機上的文件和目錄的部分系統屬性,並且無需改變文件系統的屬性。例如,如果在etc目錄上發現了I屬性,這意味著該目錄正在使用H-樹索引來加速搜索。同樣,在壹個ext4文件系統中,可能在許多文件和目錄上找到E屬性,這意味著這些文件正在使用區代替塊來獲得更高效的存儲。所有這些系統屬性都代表著某個狀態,而且不能更改。
    對於那些管理員可以修改的屬性,您會發現其中的部分屬性具有實驗狀態。這表示:這些屬性可能會在新版本的內核和文件系統中部署和使用,但是目前還沒有任何功能。不過,壹些已經部署的屬性可能對妳有用。比如:
    I immutable:具有該屬性的文件不能被修改。該屬性可以有效地防止壹些重要文件被意外刪除。
    J journal:該屬性能確保文件數據塊先於文件元數據寫入日誌。該屬性僅適用於data=mount日誌模式,它可以為您的文件提供更多保護。
    S secure deletion: 具有該屬性的文件,在刪除命令提交前,其數據塊就會被清除。該屬性僅適用於最新的內核版本和文件系統。
    U undelete:使用該屬性的文件能通過工具恢復,如extundelete。該屬性僅適用於最新的內核版本和文件系統。
    您可以使用chattr命令來設置文件屬性。例如,下面的命令將/etc/hosts 文件屬性配置為immutalbe:
    chattr +i /etc/hosts
    使用lsattr命令來檢查配置是否成功。該命令可以顯示某個文件當前的所有已配置的屬性。
    [root@flo ~]# chattr +i /etc/hosts
    [root@flo ~]# lsattr /etc/hosts
    ----i--------e- /etc/hosts
    文件系統屬性中壹個很好的特性是這些屬性可以應用於所有用戶。因此,無論哪個用戶登錄,文件系統屬性都是有效的。這可以確保根用戶也會受限於您的屬性設置。但是根用戶可以刪除文件系統屬性。
    在諸如ext4等現代Linux文件系統上,默認情況下,文件系統屬性就能用於實現高級文件系統功能,比如區。而在其它文件系統中,在您開始使用這些高級功能前,您可能必須先啟動屬性支持。通過這些屬性,您可以為您的文件添加額外的保護用戶,甚至根用戶的都不能例外。因此,文件系統屬性為您的服務器安全提供壹種非常有價值的額外保護方式。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206