Linux文件系統(tǒng)屬性使用方法
在Linux系統(tǒng)中,有許多辦法來保護(hù)您的文件。文件系統(tǒng)屬性就是其中之一。在本文中,您將了解如何使用這些文件系統(tǒng)屬性。
在使用文件系統(tǒng)屬性之前,您應(yīng)該了解各種文件系統(tǒng)間的主要區(qū)別。一般情況下,我們把文件系統(tǒng)分為XFS文件系統(tǒng)和其它文件系統(tǒng)。對(duì)于管理屬性,XFS有自己的解決方法,且這里我們將討論的屬性選項(xiàng)也完全不一樣。在本文中,我們將討論ext文件系統(tǒng)上的屬性設(shè)置。要使用文件系統(tǒng)屬性,必須啟動(dòng)文件系統(tǒng)。默認(rèn)情況下,只有新啟動(dòng)的文件系統(tǒng)使用文件系統(tǒng)屬性。為了啟動(dòng)一個(gè)文件系統(tǒng)屬性支持,您需要在掛載文件系統(tǒng)時(shí)指定一個(gè)掛載(mount)選項(xiàng)。這個(gè)選項(xiàng)就是user_xattr。在測(cè)試本文描述的任何信息之前,請(qǐng)確認(rèn)該屬性設(shè)置為啟動(dòng)。您可以使用掛載(mount)命令來確認(rèn)該信息。下面的內(nèi)容顯示如何在啟動(dòng)了根文件系統(tǒng)的計(jì)算機(jī)上查看文件系統(tǒng)屬性。
通過使用掛載(mount)命令來確認(rèn)文件系統(tǒng)屬性支持
/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)
如果目前文件系統(tǒng)不支持這些屬性,通常情況下,您可以為一個(gè)已掛載的文件系統(tǒng)添加user_xattr選項(xiàng)。您可以使用如下命令,在根文件系統(tǒng)上添加user_xattr選項(xiàng)。
mount -o remount,user_xattr /
重新掛載(remount)選項(xiàng)可以保證文件系統(tǒng)使用新的屬性,而無需完全卸載文件系統(tǒng)。如果您希望文件系統(tǒng)能長(zhǎng)期支持文件系統(tǒng)屬性,您需要在/etc/fstab文件中里指定其作為一個(gè)選項(xiàng)。 以下顯示,如何在我的Fedora系統(tǒng)上為根邏輯卷啟動(dòng)文件系統(tǒng)屬性。
顯示與改變屬性
這里存在兩種不同的文件系統(tǒng)屬性。一些屬性是作為默認(rèn)屬性使用,而另一些則被設(shè)置為簡(jiǎn)單的文件管理系統(tǒng)。lsattr命令能顯示計(jì)算機(jī)上的文件和目錄的部分系統(tǒng)屬性,并且無需改變文件系統(tǒng)的屬性。例如,如果在etc目錄上發(fā)現(xiàn)了I屬性,這意味著該目錄正在使用H-樹索引來加速搜索。同樣,在一個(gè)ext4文件系統(tǒng)中,可能在許多文件和目錄上找到E屬性,這意味著這些文件正在使用區(qū)代替塊來獲得更高效的存儲(chǔ)。所有這些系統(tǒng)屬性都代表著某個(gè)狀態(tài),而且不能更改。
對(duì)于那些管理員可以修改的屬性,您會(huì)發(fā)現(xiàn)其中的部分屬性具有實(shí)驗(yàn)狀態(tài)。這表示:這些屬性可能會(huì)在新版本的內(nèi)核和文件系統(tǒng)中部署和使用,但是目前還沒有任何功能。不過,一些已經(jīng)部署的屬性可能對(duì)你有用。比如:
I immutable:具有該屬性的文件不能被修改。該屬性可以有效地防止一些重要文件被意外刪除。
J journal:該屬性能確保文件數(shù)據(jù)塊先于文件元數(shù)據(jù)寫入日志。該屬性僅適用于data=mount日志模式,它可以為您的文件提供更多保護(hù)。
S secure deletion: 具有該屬性的文件,在刪除命令提交前,其數(shù)據(jù)塊就會(huì)被清除。該屬性僅適用于最新的內(nèi)核版本和文件系統(tǒng)。
U undelete:使用該屬性的文件能通過工具恢復(fù),如extundelete。該屬性僅適用于最新的內(nèi)核版本和文件系統(tǒng)。
您可以使用chattr命令來設(shè)置文件屬性。例如,下面的命令將/etc/hosts 文件屬性配置為immutalbe:
chattr +i /etc/hosts
使用lsattr命令來檢查配置是否成功。該命令可以顯示某個(gè)文件當(dāng)前的所有已配置的屬性。
[root@flo ~]# chattr +i /etc/hosts [root@flo ~]# lsattr /etc/hosts ----i--------e- /etc/hosts
文件系統(tǒng)屬性中一個(gè)很好的特性是這些屬性可以應(yīng)用于所有用戶。因此,無論哪個(gè)用戶登錄,文件系統(tǒng)屬性都是有效的。這可以確保根用戶也會(huì)受限于您的屬性設(shè)置。但是根用戶可以刪除文件系統(tǒng)屬性。
在諸如ext4等現(xiàn)代Linux文件系統(tǒng)上,默認(rèn)情況下,文件系統(tǒng)屬性就能用于實(shí)現(xiàn)高級(jí)文件系統(tǒng)功能,比如區(qū)。而在其它文件系統(tǒng)中,在您開始使用這些高級(jí)功能前,您可能必須先啟動(dòng)屬性支持。通過這些屬性,您可以為您的文件添加額外的保護(hù)用戶,甚至根用戶的都不能例外。因此,文件系統(tǒng)屬性為您的服務(wù)器安全提供一種非常有價(jià)值的額外保護(hù)方式。
原文鏈接:http://www.searchsv.com.cn/showcontent_45129.htm
【編輯推薦】